2012-08-27 4 views
0

Je reçois une erreur dans la console Firebug:fonction jQuery .on ne se trouve pas

qui est la ligne 8 de mon fichier modal.js - voir ci-dessous. J'utilise le code de gist.github.com/1456815.

je peux trouver le code v1.7.2 jQuery minified pertinent application.js:

f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object") 

jQuery et mon code de modal.js est chargé par le pipeline d'actifs, donc je ne comprends pas la erreur, qui montre dans Firebug quand ma page d'index est chargée, c'est à dire avant que je clique sur le lien.

Versions: Ruby 1.9.3, 1.8.24 gemme, Rails 3.2.1, Râteau 0.9.2.2

Ma source application.js:

//= require jquery 
//= require jquery-ui 
//= require jquery.dataTables 
//= require TableTools 
//= require ZeroClipboard 
//= require datatable_highways 
//= require datatable_localities 
//= require datatable_neighbours 
//= require_tree . 
//= require modals 

Comme par RailCasts # 205 J'ai téléchargé rail.js dans/public/javascripts et renommé jquery.rails.js. Franchement, je ne comprends pas cela et ce n'est pas explicitement inclus dans le pipeline d'actifs. (Il semble y avoir une confusion sur ce qu'il faut faire avec rails.js dans les forums).

jquery.js se trouve dans/vendor/assets/javascripts.

Modal.js.coffee:

# This file should be "required" into your `application.js` via the Asset Pipeline. 

$ -> 
    $modal = $('#modal') 
    $modal_close = $modal.find('.close') 
    $modal_container = $('#modal-container') 

    # Handle modal links with the data-remote attribute 
    $.on 'ajax:success', 'a[data-remote]', (xhr, data, status) -> 
    $modal 
    .html(data) 
    .prepend($modal_close) 
    .css('top', $(window).scrollTop() + 40) 
    .show() 
    $modal_container.show(); 

    $.on 'click', '#modal .close', -> 
    $modal_container.hide() 
    $modal.hide() 
    false 

Merci John

Répondre

0

faire quelque chose comme ceci:

$('#modal .close').on 'click', -> 
    # code 

Ou, mieux encore, d'utiliser votre code:

$modal_close.on 'click', -> 
    # code 
+0

Merci Hahn. Vous dites changer la syntaxe. Je vais devoir en savoir plus sur jQuery car je ne sais pas exactement comment le changer. Je pensais que ce devait être une sorte de conflit avec d'autres fichiers JavaScript. – need2surf

+0

Merci Evan. J'ai fait le changement comme vous l'avez suggéré et je ne reçois plus l'erreur. Ce n'était pas un conflit $. Ma boîte de dialogue modale ne s'affiche pas, mais je vais commencer à regarder cela. – need2surf