友
而不是手动初始化每个实例:
$("#MyChildId1").find("ul.sf-menu").superfish({ delay: 100, speed: 'fast' });
$("#MyChildId2").find("ul.sf-menu").superfish({ delay: 100, speed: 'fast' });
$("#MyChildId3").find("ul.sf-menu").superfish({ delay: 100, speed: 'fast' });
我想使用jQuery插件(Superfish)的多个(和动态)实例,并使用事件委派对父进行一次调用来启动它们:
$("#MyParentId").find("ul.sf-menu").superfish({ delay: 100, speed: 'fast' });
但这不起作用,即使文档说它现在使用事件委派: http://users.tpg.com.au/j_birch/plugins/superfish/
最后一个项目: “•使用v1.5.1中的事件委托,以获得更高的性能和灵活性。”
任何jQuery Geniuses都知道它是什么?
答案 0 :(得分:0)
您可以选择所有菜单,然后循环浏览它们以启动它们。
$("#MyParentId").find("ul.sf-menu").each(function () {
$(this).superfish({ delay: 100, speed: 'fast' });
});
.each()
的文档:http://api.jquery.com/each
你也可以使用:
$.each()
:http://api.jquery.com/jquery.each for
或while
循环例如:
var $menus = $("#MyParentId").find("ul.sf-menu");
for (var i = 0, l = $menus.length; i < l; i++) {
$menus.eq(i).superfish({ delay: 100, speed: 'fast' });
}
for
循环的运行速度比jQuery .each()
循环略快,我相信主要是因为.each()
循环为每次迭代创建了一个IIFE(例如for (...) { (function () {...})(); }
)。