2012-08-27 76 views
0

我在Firebug的控制檯得到一個錯誤:jQuery的。對功能沒有發現

這是我modal.js文件的第8行 - 見下文。我使用的是gist.github.com/1456815的代碼。

我能找到的application.js相關的jQuery v1.7.2的精縮代碼:

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

jQuery的,然後我的modal.js代碼是由資產管道加載,所以我不明白錯誤,當我的索引頁面加載時,即在點擊鏈接之前,它顯示在Firebug中。

版本:1.9.3紅寶石,寶石1.8.24,Rails的3.2.1,耙0.9.2.2

我的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 

按照RailCasts#205我已經下載rail.js轉換成/ public/javascripts並重命名爲jquery.rails.js。坦率地說,我不明白這一點,它沒有明確包含在資產管道中。 (關於在論壇中如何處理rails.js似乎存在困惑)。

jquery.js和中/供應商/資產/ JavaScript的。

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 

感謝 約翰

回答

0

做這樣的事情,而不是:

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

,或者甚至更好,使用您的代碼:

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

謝謝哈恩。你在說改變語法。我將不得不更多地瞭解jQuery,因爲我不確定如何更改它。我一直認爲它必須與其他JavaScript文件發生某種衝突。 – need2surf

+0

謝謝埃文。我已按照您的建議進行了更改,而且我不再收到錯誤消息。這不是一場衝突。我的模式對話框不顯示,但現在我將開始查看。 – need2surf