【发布时间】:2011-08-23 15:27:58
【问题描述】:
JQuery 对自定义事件有很好的支持 - .bind("foo", function(e)...。但是,如果触发事件的机制还没有准备好,只能在绑定了事件的元素上构建呢?
例如,我想要一个scrollin 事件,当元素滚动到视口时触发该事件。为此,我将onscroll 必须检查所有元素,trigger scrollin 必须检查那些在视口之外而现在在视口内的元素。这是不可接受的。
有一些技巧可以加快速度。例如,其中一个插件会检查“私有”$.cache 中的所有元素,并且只检查那些绑定了 scrollin 事件的元素。
但这也很丑陋。我需要的是事件的 binding 的额外回调(除了处理回调之外),它将负责滚动管理,即将元素放入一些 @987654328 @缓存数组。
我正在寻找类似的东西:
$.delegateBind("scrollin", function(jqSelection) { ... });
element.bind("scrollin", function(e) {..}); //Calls ^ after internal bind management
编辑:这将是很好的 api!
$.bind("bind", function(onWhat) { ... })
:-)
【问题讨论】:
-
事件委托,而 .live 方法可能会满足您的需求。一个小演示可以帮助我们帮助你;)
标签: javascript jquery events custom-events