/ / Problémy s JQuery v Rails 3.2 - jQuery, Ruby-on-Rails, Ruby-on-Rails-3.2

Problémy s JQuery v Rails 3.2 - jquery, ruby-on-rails, ruby-on-rails-3.2

Jednoducho sa snažím prinútiť Jquery pracovať s mojou aplikáciou rails.

Chcel by som umiestniť nejaký JQuery do svojho súboru new.html.erb a v konzole chrome sa mi zobrazuje nasledujúca chyba:

 Uncaught SyntaxError: Unexpected token (

Tu je môj new.html.erb:

<% provide(:title, "New Stat") %>
<% provide(:heading, "Welcome, #{ current_user.email }!") %>

<div id="stats-page-container">
<div id="stat-form" >
<div id="stat-form-inner">

<% render "layouts/init_stats_form" %>
<% render "layouts/stat_input_form" %>

<script>
$.("#stat-form-inner").addClass("test-class");
</script>

</div>
</div>
<%= render "layouts/progress" %>
</div>

Chyba je v súlade s kódom JQuery:

$.("#stat-form-inner").addClass("test-class");

Tu je môj súbor application.html.erb:

<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<h1> <%= yield(:heading) %> </h1>
<%= stylesheet_link_tag    "application", :media => "all" %>
<%= csrf_meta_tags %>
</head>
<body>
<% flash.each do |key, value| %>
<%= content_tag(:div, value, class: "alert alert-#{key}")%>
<% end %>

<%= render "layouts/header" %>

<% if user_signed_in? %>
<%= render "layouts/subheader" %>
<% end %>

<%= yield %>
<%= debug(params) if Rails.env.development? %>

<%= javascript_include_tag "application" %>
</body>
</html>

A prvok s týmto id stat-forma-vnútorný nemá túto triedu pridanú.

môj súbor application.js má toto v sebe:

// = require jquery
// = require jquery_ujs
// = require_tree .

Pridal som tiež

<%= javascript_include_tag "application" %>

priamo nad koncovou značkou tela.

Čo ďalej mi chýba?

Vďaka!

odpovede:

2 pre odpoveď č. 1
  1. Uistite sa, že je JQuery načítaný správne. Ak to chcete urobiť, odstráňte / komentujte $ ("# stat-form-internal"). AddClass ("test-class") a otvorte aplikáciu vo FF / chrome a do konzoly Firebug zadajte $ alebo jQuery. Ak vytlačí funkciu (), potom je jQuery načítaný správne. Ak hodí chybu Referenčná chyba, jQuery nie je definovaný, potom sa rámec JQuery nenačíta.

  2. Ak je program JQuery načítaný správne, vyskúšajte nasledujúce návrhy

    Umiestnite toto vyhlásenie <% = javascript_include_tag "application"%> vo vnútri hlavovej značky alebo v hornej časti súboru zobrazenia / rozloženia.

    Vyskúšajte nasledujúci segment kódu, ktorý pridá triedu k prvku, najlepšie na koniec stránky (je v poriadku umiestniť ho aj za koncovú značku HTML)

    <script type="text/javascript">
    $(document).ready(function() {
    $("#stat-form-inner").addClass("test-class");
    });
    </script>
    

Dúfam, že to pomôže


1 pre odpoveď č. 2

Vložte svoje skripty do priečinka app/assets/javascript, nezabudnite použiť $("..."), nie $.().

Vitajte na Rails!


0 pre odpoveď č. 3

Pridávate javascript_include_tag vyššiekoncová značka tela. To znamená, že váš skript sa vykonáva skôr, ako stránka načíta jquery. presuňte volanie javascript_include_tag na hlavovú značku a malo by to fungovať.