2013-11-02 39 views
0

我有網頁,這讓一些Ajax調用並加載以下HTML:jQuery的事件

<span class="actions"> 
    <a class="delete" href="/delete/1">Delete</a> 
    <a class="edit" href="/edit/1">Edit</a> 
</span> 

以下JavaScript應該重視事件處理未來的對象:

$('.actions').live('ready', initFileActions); 
var initFileActions = function (options) { 
    alert('action called'); 
    $('.delete', this).click (function (e) { 
     alert ('delete called'); 
    }); 
    $('.edit', this).click (function (e) { 
     alert ('edit called'); 
    }); 
    return $(this); 
} 

上面的代碼調用了第一個警報('action called')罰款,但它沒有調用第二個警報('delete called'),任何人都可以請幫助我如何在上面的代碼中調用第二個警報。

+0

我不完全知道爲什麼你正在收聽的是準備好一個錨,因爲他們沒有現成的事件 - https://developer.mozilla.org/en-US/docs/Web/ API/GlobalEventHandlers。我認爲Khanh TO snippet會幫助你。 – riscarrott

回答

1

.live已棄用,應使用.on。 嘗試:

$(document).on('click','.actions .delete' initFileActions); 
var initFileActions = function (options) { 
    alert ('delete called'); 
    return $(this); 
} 
+0

基本上在動作類中,可以有多個動作,如'編輯','刪除','添加',所以有一種簡單的方法來調用$(document).on()而不是$(document)。 on('click','action delete',func()); $(document).on('click','action add',func()); $(document).on('click','action edit',func())?我想做一些類似$(document).on('click','action',fund())的東西,然後在func()中,我想進一步添加事件來點擊單擊事件,但那不起作用。它只適用於內容已經存在,但在我的情況下,內容來自ajax調用,所以它是失敗的。 –

+0

@Imran Imtiaz:我沒有看到好處,爲什麼你必須這樣做,你必須附上這麼多事件處理程序。 –