我正在使用corner插件来获得四舍五入的div
。如何使用.delegate
或.on
将插件应用于将来创建的div
?
这就是我必须得到的圆角:
$('.myDiv').corner("10px");
您不会为此使用.on
或delegate
。
你只需要使用同一行代码,但你会把它放在你用来创建新的div
s的任何函数中。
......(function() { // function that creates the new div
// code that creates your new div called #myNewDiv
$('#myNewDiv').corner("10px");
});
.on()
用于将"事件"绑定到动态创建的元素,在您的情况下不起作用。但是,例如,如果您想将click
事件绑定到新的div
,则可以使用on()
。
自jQuery 1.7起,.delegate()
已被.on()
取代。
Basicaly,.on()用于附加事件处理程序,这些事件处理程序也将为调用.on(。
你的插件不能以这种方式工作——它修改现有的元素,不能修改不存在的元素。
但是,如果您创建了自己的事件,该事件将被附加处理程序执行您提到的操作,您将能够在您将支持的任何元素上触发该事件。但这比其他人建议的在某些元素上重新初始化插件更复杂。或者,您可以监听一些可能在新元素出现后调用的事件(有些事件本应在新元素插入DOM后调用,但您仍然不能依赖它们-您需要找到特定于站点的案例或在DOM更新后启动自己的,最好是namespacedevents)。
实例化新元素时,调用它们的corner
方法。