javascript - 如何组合2个点击事件功能

标签 javascript jquery

我目前有这个,它工作得很好,但我想有一种更好的方法来做同样的事情,可能有一个单一的功能,而不是两个独特的功能和保存行。 只是比这么多行更优雅的方式。正如您所看到的,以下两个函数看起来很相似,但它们的功能略有不同。 任何人?谢谢

$("#container").on({
"mouseenter": function () {
    $(this).stop().animate({
        "opacity": "1"
    }, 400);
    $(this).prev(".caption").stop().fadeTo(0, 0).css('visibility', 'visible').fadeTo('fast', 1);
},
"mouseleave": function () {
    $(this).stop().animate({
        "opacity": "0.3"
    }, 400);
    $(this).prev(".caption").stop().fadeTo(0, 1).css('visibility', 'visible').fadeTo('fast', 0);
}
}, "img");

$("#container").on({
"mouseenter": function () {
    $(this).stop().animate({
        "opacity": "0.3"
    }, 400);
},
"mouseleave": function () {
    $(this).stop().animate({
        "opacity": "1"
    }, 400);
}
}, ".gallery a img");

最佳答案

您可以使用逗号,add()函数指定多个选择器:

$("#container, #container2, #container3")

更新

$("#container, #container2, #container3").on({
"mouseenter": function (e) {
   var id = e.target.id;
   if (id === 'container') {
     // code for #container
   }
   else if (id === 'container2') {
     // code for #container2
   }
   else if (id === 'container3') {
     // code for #container3
   }
},
"mouseleave": function (e) {
   var id = e.target.id;
   if (id === 'container') {
     // code for #container
   }
   else if (id === 'container2') {
     // code for #container2
   }
   else if (id === 'container3') {
     // code for #container3
   }
}
}, "img");

关于javascript - 如何组合2个点击事件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11162699/

相关文章:

javascript - 如何避免将 JavaScript ES6 模块导出添加到全局范围以用于普通脚本 block ?

php - 可怕的 Evercookie 和 CakePHP

javascript - jQuery 中 deferred.resolveWith() 在哪里定义?

javascript - 使用 jquery validate 验证具有相同类的多个表单

javascript - jQuery 中如何判断一个元素是否存在?

javascript - jQuery Datepicker 中的日期格式

javascript - 引导轮播 : Uncaught TypeError: Cannot read property 'offsetWidth' of undefined

javascript - 悬停悬停文本框在选中时保持固定

jquery - 通过 chrome 扩展弹出窗口填写表单

jquery - jQuery 选择器帮助