使用$(document).on将多个事件绑定到同一元素
use $(document).on to bind multiple events to the same element
我正试图习惯jQuery中新的正确方式,但我不知道如何做一个像原来一样优雅/DRY的"实时"绑定。以前,有了"live",我相信你可以做到这一点,只提到过一次元素:
$("#element_id").live("click",function(){
//stuff
}).live("mouseover", function(){
//stuff
}).live("mouseout", function(){
//stuff
});
现在,有了$(document).on
,我似乎需要这样做:
$(document).on("click","#element_id",function(){
//stuff
}).on("mouseover","#element_id",function(){
//stuff
}).on("mouseout","#element_id",function(){
//stuff
});
这不那么简洁,重复了元素。有没有一种明显更简单的方法来实现这一点?
$(document).on({
click: function () {},
mouseover: function () {},
mouseout: function () {}
}, '#element_id');
小心使用document
;您可能需要使用更具体的选择器。此外,我不一定认为动态加载ID元素是一种糟糕的做法,但这看起来很可疑。
如果回调需要共享代码,我发现这种方法很有用:
var handler = function ( event ) {
var $target = $( event.target );
if ( $target.is( '#element_id' ) ) }
switch ( event.type ) {
case 'click':
// stuff
break;
case 'mouseenter':
// stuff
break;
case 'mouseleve':
// stuff
break;
}
}
};
$( document ).on({
click: handler,
mouseenter: handler,
mouseleave: handler,
});
相关文章:
- 在offline.js中绑定事件
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 在页面高度更改时绑定事件
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- 使用onbeforeunload绑定事件
- 传递类似绑定事件的参数
- 如何对修改后的元素重新绑定事件
- 聚合物模板自动绑定:在模板绑定事件之前的核心选择火灾
- Jquery差异B/w Jquery绑定事件
- SessionStorage绑定事件
- extjs,如何在表单操作中绑定事件
- 模拟 Web 浏览器方向更改事件以使用 Jasmine 测试绑定事件处理程序函数
- 绑定事件发射器上的单个事件
- 如何在绑定事件期间排除元素
- 将鼠标悬停在位于我的页面上的 iframe 上的绑定事件,其中包含包含的 src
- 在 jQuery 中创建 DOM 之前的绑定事件
- 如何在页面加载时在 ajax 调用中绑定事件处理程序后触发事件
- 使用 ajax 加载的页面绑定和取消绑定事件处理程序
- 咖啡脚本构造函数中的绑定事件
- 将数据添加到动态创建的元素和绑定事件