2014-01-25 53 views
0

我目前正在通過將它們放入一個數組中排序,然後將它們附加到DOM中 - 這是工作正常。jquery重新綁定事件與.on/.off

我遇到的問題是重新綁定所需的點擊事件。這是DOM的簡化版本:

<div id="allmembers"> 

    <div id="member1"> 
    <img class="openmessage"/> 
    <img class="deletemessage"/> 
    <img class="pinmessage"/> 
    </div> 

    <div id="member2"> 
    <img class="openmessage"/> 
    <img class="deletemessage"/> 
    <img class="pinmessage"/> 
    </div> 

</div> 

排序/追加發生在ID =的member1/member2水平,使ID =「allmembers」不移動/變化。

我很高興有到位的點擊這樣的活動爲開/刪除/針類的元素,如:

$('#allmembers .openmessage).on('click', function(e) { 
    alert('open message'); 
}); 

然而,這僅。對工作的第一個排序前/追加。它不再發射後。

如何爲像這樣移動的元素(非靜態)設置點擊事件?

+0

哪裏是你的代碼,不會進行排序? – j08691

+1

你在選擇器的末尾有一個未封閉的報價... – Joeytje50

+0

'$('#allmembers .openmessage)'是一個錯字嗎?它缺少一個報價? –

回答

2

嘗試事件代表團。

將事件附加到父節點,並讓特定子節點上的事件在冒泡時被捕獲。

繼承人的語法:

$('#allmembers').on('click', '.openmessage', function(e) { 
    alert('open message'); 
}); 

此處瞭解詳情:http://api.jquery.com/on/