我有一个html ul
列表和一个创建新li
元素的按钮添加。
我需要的是在创建新的li
元素之后调用一个函数,但我面临的问题是按钮的点击事件(或它做了什么)以及添加新函数的函数{我无法访问{1}}元素,因此我可以访问的唯一方法是通过新事件绑定到按钮。
如果我为按钮创建一个新的绑定事件,我无法做任何事情,因为在创建新li
之前触发了事件。
li
所以我需要的是能够检测到新的$addButton.bind("click", myFunction);
被添加到主li
的东西。
什么是最好的方法?
我重复以防万一...我无法访问创建ul
元素的函数。
答案 0 :(得分:1)
您可以使用DOMNodeInserted
事件。
$('#list').on('DOMNodeInserted', 'li', function(e) {
console.log(e);
});
将为列表中添加的每个新li
元素触发。
小提琴:https://jsfiddle.net/x7po0dwe/
IE> 9
<强>更新强>:
我推荐这个解决方案而不是我的解决方案:https://stackoverflow.com/a/10343915/1516112
答案 1 :(得分:1)
您可以使用循环函数捕获li创建,该函数在单击该按钮时触发:
$("#my_btn").click(function(){
lis = $('li').length;
check_creation = function(){
setTimeout(function(){
if(lis == $('li').length){
//make another loop
check_creation();
}else{
//Do what is necessary
}
}, 50);
}
check_creation();
});
答案 2 :(得分:0)
扩展@nikoskip提示您可以添加MutationObserver对象来收听Function CopyVerify-Item {
DynamicParam {
# Get all the parameters from Copy-Item
}
Process {
Copy-Item $PSBoundParameters
# Do my extra code here to verify the copy
}
}
中的更改。当你已经在DOM中拥有ul
时,你会添加它,所以最好把它放在DOM ready事件中。
检查演示:Fiddle
ul
进一步检查:Mozilla API