3 回答

TA贡献1827条经验 获得超8个赞
我最近写了一个完全可以做到这一点的插件-jquery.initialize
使用方法与.each功能相同
$(".some-element").initialize( function(){
$(this).css("color", "blue");
});
所不同的.each是-在这种情况下.some-element,它将使用您的选择器,并在以后使用该选择器等待新元素,如果将添加此类元素,则也会对其进行初始化。
在我们的例子中,初始化函数只是将元素颜色更改为蓝色。因此,如果我们要添加新元素(无论使用ajax还是F12检查器,或其他任何东西),例如:
$("<div/>").addClass('some-element').appendTo("body"); //new element will have blue color!
插件会立即将其初始化。插件还确保一个元素仅被初始化一次。因此,如果添加元素,然后.deatch()从正文中添加元素,然后再次添加它,则不会再次初始化它。
$("<div/>").addClass('some-element').appendTo("body").detach()
.appendTo(".some-container");
//initialized only once
插件基于MutationObserver-它将在IE9和10上运行,并且具有自述文件页上所述的依赖项。
添加回答
举报