2016-04-26 36 views
0

我正在使用@ Html.RenderAction呈現一個頁面,我想使用$.ajax()來更新頁面,但是當我嘗試這樣做時,如果使用click事件,則無法識別如果我使用的代碼的第二塊是不是一個答案,因爲只有第一次點擊的認可和隨後的每次點擊都無法識別使用事件代表團不能使用@ Html.RenderAction

$('.saleType > a').click(function() { 
    var saleType = $(this).text(); 
    alert(saleType) 
    //ajax request made 
}) 

下面的代碼

$(document).on('click', '.saleType > a', function() { 
    var saleType = $(this).text(); 
    alert(saleType) 
    //ajax request made 
}); 

但click事件被識別。

爲什麼我的第一個代碼塊不工作?

編輯: 感謝@shyju我可以看到代碼獨立工作,所以我的問題是如何調試這個問題?

+0

對我來說工作正常http://jsbin.com/cakizilozu/edit?html,js,console,output – Shyju

+0

我擔心會發生這種情況:S我該如何進行調試我的問題? – tony09uk

回答

0

它看起來很適合我。您的當前版本jQuery可能無法在事件委派上下文中正確處理直接子選擇器'.saleType > a'。我拿出2級的解決方案:

  • 更新您jQuery版本到最新的版本(如果不是這種情況)
  • 解決這樣:

例子:

$(document).on('click', 'a', function() { 
    var isSaleType = $(this).parent().is('.saleType'); 
    if(isSaleType) { /* your code */ } 
}); 

如果第一個選項不起作用,您可能會發現一個問題。如果是這樣的話,請向jQuery團隊報告:https://github.com/jquery/jquery/issues