你可以通過這種方式進行綁定和解除綁定。
$('elemSelector').clone().find('.add-row').unbind('click').click(addRowHandler);
我的建議:
使用委託的事件處理程序,而不是隻使用deepclone克隆元素和對該元素的unbind/bind
。你可以用做on()
EX:
在你pageinit
//...
$('table').on('click', '.add-row', addRowHandler);
//...
Demo
基本上你正試圖在這裏做的,而不是在安裝時元素,您可以將它附加到DOM中的任何給定時間點的父元素(表)上,以便任何新添加的(添加行)都可以通過delegatio ñ。因此,有了這個,您就可以爲現在和將來的元素授予事件。
參見:
event-delegation
更新
根據您的後期評論,我一直在使用模板anothe R染料溶液。
最簡單的方法是創建一個要克隆的行的模板,因爲如果克隆現有的行,它也會克隆現有的轉換元素,這可能會導致您面臨的問題,而不是模板行,將其克隆並在需要時附加,並致電trigger('create')
將JQ移動轉換應用到元素上。
var template = '<tr><td><input type="text" name="item" /></td><td><label class="checkbox" data-mini="true"><input type="checkbox" name="incomeRecurring[]">Recurring</label></td><td><a href="#" class="add-row">Add</a></td></tr>';
$('table').on('click', '.add-row', function() {
$('table tbody').append($(template).clone()).trigger('create'); //recreate the elements
});
Demo
來源
2013-06-30 06:34:50
PSL
'.ready'不應與jQuery Mobile的使用。 – Omar
@Omar Yup右... – PSL
謝謝你的回答PSL。我會試試看看它是否確實解決了這個問題。然而,我可能需要告訴jqm將樣式應用於新創建的元素。你的演示沒有包含jqm增加的所有樣式,事件等。 – user2535949