2014-02-19 53 views
1

我將行添加到使用jQm的拆分listview中,並且我只能獲取第一行(未動態添加)來觸發單擊事件。我想有一個刷新功能的地方,我要打電話,但我想不出什麼 - 我已經刷新列表視圖,這是我有望解決它......在動態添加的行上拆分listview輔助按鈕單擊事件

這裏的小提琴: http://jsfiddle.net/z36fy/1/

和下面的代碼:

<ul data-role="listview" data-split-icon="minus" id="list"> 
    <li> 
     <a href="#">Item Description</a> 
     <a href="#" class="delbtn">remove</a> 
    </li> 
</ul> 
<a href="#" id="addbtn" class="ui-btn">Add item</a> 

JS:

var itemcount=1; 

$('#addbtn').click(function() { 
    var addstr = '<li><a href="#">Item Description '+itemcount+'</a><a href="#" id="delbtn-'+itemcount+'" class="delbtn">remove</a></li></ul>'; 
    $('#list').append(addstr); 
    $('#list').listview(); 
    $('#list').listview('refresh'); 
    itemcount++; 
}); 

$('#list a.ui-li-link-alt').on("click",function() { 
    alert('delbtn clicked'); 
}); 

我缺少什麼?

+0

'$'的',而不是$( 'delbtn')(文件)。在( 「點擊」, 「.delbtn」 功能()。點擊(函數(){'當你處理動態元素時,這被稱爲事件委託http://jsfiddle.net/Palestinian/z36fy/2/ – Omar

+0

[綁定動態添加元素在jQuery手機中](http:// stackoverflow。 com/questions/20431392/binding-dynamic-added-elements-in-jquery-mobile) – Omar

+0

知道它必須簡單 - 謝謝! – richbee

回答

1

由於您正在動態添加DOM元素,因此無法提前進行綁定。相反,使用事件代表團(https://learn.jquery.com/events/event-delegation/):

$('#list').on("click", ".delbtn", function() { 
    alert('delbtn clicked'); 
}); 

這是說結合的Click事件與列表中的類delbtn任何物品,即使還不存在他們。

更新FIDDLE

相關問題