but*_*php 128 javascript jquery jquery-selectors jquery-1.7
试图弄清楚如何将Jquery .on()方法与具有多个与之关联的事件的特定选择器一起使用.我之前使用过.live()方法,但不太确定如何用.on()完成同样的壮举.请参阅下面的代码:
$("table.planning_grid td").live({
mouseenter:function(){
$(this).parent("tr").find("a.delete").show();
},
mouseleave:function(){
$(this).parent("tr").find("a.delete").hide();
},
click:function(){
//do something else.
}
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过调用以下方式分配多个事件:
$("table.planning_grid td").on({
mouseenter:function(){ //see above
},
mouseleave:function(){ //see above
}
click:function(){ //etc
}
});
Run Code Online (Sandbox Code Playgroud)
但我相信正确使用.on()会是这样的:
$("table.planning_grid").on('mouseenter','td',function(){});
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?或者这里的最佳做法是什么?我尝试了下面的代码,但没有骰子.
$("table.planning_grid").on('td',{
mouseenter: function(){ /* event1 */ },
mouseleave: function(){ /* event2 */ },
click: function(){ /* event3 */ }
});
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Fré*_*idi 246
那是另一种方式.你应该写:
$("table.planning_grid").on({
mouseenter: function() {
// Handle mouseenter...
},
mouseleave: function() {
// Handle mouseleave...
},
click: function() {
// Handle click...
}
}, "td");
Run Code Online (Sandbox Code Playgroud)
Pir*_*jan 175
此外,如果您有多个事件处理程序连接到执行相同功能的同一个选择器,您可以使用
$('table.planning_grid').on('mouseenter mouseleave', function() {
//JS Code
});
Run Code Online (Sandbox Code Playgroud)
小智 20
如果要在不同事件上使用相同的功能,可以使用以下代码块
$('input').on('keyup blur focus', function () {
//function block
})
Run Code Online (Sandbox Code Playgroud)
Ima*_*idi 11
链接功能,在这种情况下,其中大多数jQuery的功能,包括工作原理是非常有用的功能输出过.
它的工作原理是因为大多数jQuery函数的输出都是输入对象集,因此您可以立即使用它们,使其更短更智能
function showPhotos() {
$(this).find("span").slideToggle();
}
$(".photos")
.on("mouseenter", "li", showPhotos)
.on("mouseleave", "li", showPhotos);
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以通过以下方式组合相同的事件/功能:
$("table.planning_grid").on({
mouseenter: function() {
// Handle mouseenter...
},
mouseleave: function() {
// Handle mouseleave...
},
'click blur paste' : function() {
// Handle click...
}
}, "input");
Run Code Online (Sandbox Code Playgroud)