0
我使用angularjs,最初因爲.live在jQuery的貶值,我做了以下將元素添加到我的屏幕:從角動態創建的元素不會對事件作出響應
var CHECK_INTERVAL = 100; //100 = 1/10th second, choose appropriate
function checkForElement() {
$('input[type=checkbox]').each(function (index) {
$(this).bootstrapSwitch();
$('input[id^="chk"]').on('switchChange.bootstrapSwitch', function (event, state) {
//alert('got here!');
});
});
setTimeout(checkForElement, CHECK_INTERVAL);
}
setTimeout(checkForElement, CHECK_INTERVAL);
一切都工作得很直到我不得不使用初始頁面加載後顯示的新元素。
我有下面的代碼操縱的另一段代碼:
$('input[id^="chk"]').on('switchChange.bootstrapSwitch', function (event, state) {...
但是,讓頁面加載後產生的新的元素沒有看到這個代碼。
我該怎麼做才能讓新創建的元素看到上面的代碼,檢查是否點擊複選框?
從文檔:事件處理程序只能綁定到當前選擇的元素;它們必須在您的代碼調用.on()時存在 - 換句話說,使用現有的元素(如文檔)並委託給您的輸入字段。 – 2015-04-05 19:46:07
養成使用指令來綁定這些事件的習慣 – charlietfl 2015-04-05 20:16:59
@charlietfl你有一個很好的例子來說明如何做到這一點? – webdad3 2015-04-05 20:18:37