2013-02-10 56 views
1

我下面search-sort-using-ajax.live是不是在軌3.2.11

這裏我的Gemfile包括

  • 軌3.2.11
  • 的sqlite-3
  • 意志PAGINATE功能錯誤, '3.0'
  • jQuery的導軌, '2.2.1'

周的application.js文件包括

// =要求的jquery

// =需要jquery_ujs中的application.js

腳本

$(function() { 
    $('#products th a').live('click', function() { 
    $.getScript(this.href); 
    return false; 
}); 
}) 

錯誤控制檯

越來越
$("#products th a").live is not a function 

我搜查,但我沒有找到任何解決方案。誰能幫助我,我在這裏做什麼實際的錯誤

謝謝

+0

由於'活()'已被棄用,去除的jQuery 1.9,你或許應該使用'在()'。 – 2013-02-10 11:31:45

+1

這 – adeneo 2013-02-10 11:32:35

+0

爲什麼標記欄杆? – rds 2013-02-10 15:45:42

回答

4

我的猜測是,你正在使用jQuery 1.9,可以除去live(它已經被廢棄了好幾個版本之後)。你可以得到同樣的效果live這樣做:

$(function() { 
    $(document).on('click', '#products th a', function() { 
     $.getScript(this.href); 
     return false; 
    }); 
}); 

...它的附加處理clickdocument但只觸發它,如果點擊開始或通過元素起泡選擇#products th a匹配(這是什麼live)。

live被棄用,是有原因的(他們夫婦,實際上)去除,其中之一是,它幾乎從來沒有最好把click處理程序一路下來document(雖然它可以在非常罕見的情況)。除非你刪除並重新創建products元素,例如,你可能會想:

$(function() { 
    $('#products').on('click', 'th a', function() { 
     $.getScript(this.href); 
     return false; 
    }); 
}); 

這告訴jQuery來穿上#productsclick處理程序,但只觸發它的點擊事件開始,發泡通過匹配th a選擇器的元素。

的jQuery的版本,您使用的