如何在一个“.on”jQuery代码中使用两个事件

如何在一个“.on”jQuery代码中使用两个事件,jquery,events,Jquery,Events,这是一个运行良好且没有任何问题的代码: $(document).on({ mouseenter: function() { // Handle mouseenter... }, mouseleave: function() { // Handle mouseleave... }, click: function() { // Handle click... } }, ".MyDivs&quo

这是一个运行良好且没有任何问题的代码:

$(document).on({
    mouseenter: function() {
        // Handle mouseenter...
    },
    mouseleave: function() {
        // Handle mouseleave...
    },
    click: function() {
        // Handle click...
    }
}, ".MyDivs");
我在中找到了这个代码

但它并没有解决我的问题,我的问题是我想做同样的操作,它不是一个短代码,我想让它比现在短

这是我当前的代码:

$(document).on({
    mouseenter: function() {
        sameOperation();
    },
    mouseleave: function() {
        sameOperation();
    },
    click: function() {
        sameOperation();
    }
}, ".MyDivs");
这是我想要的代码,但它不起作用:

$(document).on({
    mouseleave,mouseenter,click: function() {
        sameOperation();
    }
}, ".MyDivs");

你可以这样做

$('.MyDivs').on('mouseenter mouseleave click', function(e) {
    sameOperation();
});

这将在3个不同的事件上触发相同的函数。

您可以这样做

$('.MyDivs').on('mouseenter mouseleave click', function(e) {
    sameOperation();
});

这将在3个不同的事件上触发相同的函数。

on()的第一个参数可以是事件名称的空格分隔字符串,而不是对象:

$(document).on('mouseleave mouseenter click', '.MyDivs', sameOperation);

on()
的第一个参数可以是以空格分隔的事件名称字符串,而不是对象:

$(document).on('mouseleave mouseenter click', '.MyDivs', sameOperation);

您的意思是('mouseleave mouseenter click'、'.MyDivs',function(){…})?您的意思是('mouseleave mouseenter click'、'.MyDivs',function(){…})?这与OPs的原始版本不同。他们正在使用委托事件句柄,但它不会影响所有的
.MyDivs
类,它会影响在此javascript代码之前加载的唯一
.MyDivs
,如果我们在页面上添加更多
.MyDivs
,它不会影响,您必须为页面上新添加的元素再次绑定事件。@MayankPatel这不是真的。使用委托事件处理程序。感谢您的评论@Rory McCrossa我明白您的意思。这与最初的操作不同。他们正在使用委托事件句柄,但它不会影响所有的
.MyDivs
类,它会影响在此javascript代码之前加载的唯一
.MyDivs
,如果我们在页面上添加更多
.MyDivs
,它不会影响,您必须为页面上新添加的元素再次绑定事件。@MayankPatel这不是真的。使用委托事件处理程序。感谢您的评论@Rory McCrossa我明白您的意思。