我正在学习如何创建自己的插件,并强烈关注http://docs.jquery.com/Plugins/Authoring上的文章。我有一个问题的特定部分与向元素添加事件有关,如http://docs.jquery.com/Plugins/Authoring#Events所示。
http://jsfiddle.net/bhcEk/包含现场演示。基本相同,除了绑定 click() 事件而不是 resize 事件,并将插件应用于给定类的多个元素,除了一个元素。
单击元素会导致 (3) 警报。从文章中的以下脚本可以看出,该事件是在 each() 循环中添加的,因此这是意料之中的。
编辑。哎呀!虽然比我还差。它将它添加到 windows 元素中,因此单击时所有元素都会触发它。也许只是用 $(this) 返回 $(window)?
在我看来,这篇文章是错误的,应该只添加一次(并在销毁下删除)。然而,写这篇文章的人比我更有经验,我怀疑他们可能是愚蠢的。是文章错了,还是我错了?
init : function( options ) {
return this.each(function(){
$(window).bind('resize.tooltip', methods.reposition);
});