我的JS中有以下设置:
$('.selector').selectpicker();
当新的DOM元素添加到页面时,上述方法不适用于新的DOM元素。我知道,在其他情况下,我可以执行以下操作,以便新添加的DOM元素起作用:
$(document).on("click", ".class-here", function() {
});
但是,第一个方法如何改变为使用新的DOM元素(而不是再次调用相同的方法)?
答案 0 :(得分:0)
您可以使用3级事件创建DOM节点,例如.on("DOMNodeInserted",(selector),(function))
,只要插入适合选择器的元素,就可以执行您的函数。见How to catch creation of DOM elements and manipulate them with jQuery
答案 1 :(得分:0)
答案取决于您正在呼叫的功能(此处为selectpicker)。
如果您正在谈论引导功能,您可以这样做:
$('.selector').selectpicker("refresh");
更改DOM后。
答案 2 :(得分:-1)
你的问题是关于绑定DOM中的新元素,jquery的先前版本使用bind和unom在dom中的新元素的方法。
但如果您使用jQuery 1.3+,那么您可以编写
$('selector').live('event',function (){ //do some action });
在上面的jquery中,你不需要在DOM上绑定/取消绑定元素。
但是jQuery 1.7+的最新版本,您可以直接使用上面提到的.on()方法,这意味着您并不关心绑定,取消绑定DOM更改'。
On()很简单,您可以为特定选择器上的多个事件编写公共回调。
我希望这些细节对您有用,并且您得到了答案。如果您使用' on()'那么你不需要在DOM中绑定元素。