在jQuery或Javascript中切换事件捕获?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在jQuery或Javascript中切换事件捕获?相关的知识,希望对你有一定的参考价值。

我的页面上有元素(id=itemid),当盘旋时会导致另一个元素(id=panel)变得可见(通过fadeIn)。基本上itemid上的悬停事件导致面板fadeInmouseOut导致fadeOut

我想制作一个按钮,以便在单击时面板元素不会出现fadeIn或者保持可见状态。单击该按钮时,mouseInmouseOut事件应该再次起作用。

有任何想法吗?

谢谢!

$(document).ready(function(){
    $('.itemid').hover(
        function () {
            $('.panel').fadeIn(300);
        },
        function () {
            $('.panel').fadeOut(200);
        }
    );
});
答案

设置是否进行淡化的标志:

$(document).ready(function(){
var fadeEnabled = true;
$('.itemid').hover(
    function () {
        if (fadeEnabled) {
            $('.panel').fadeIn(300);
        }
    },
    function () {
        if (fadeEnabled) {
            $('.panel').fadeOut(200);
        }
    }
);

$("#myButton").click(function() {
     fadeEnabled = !fadeEnabled;
});

});

然后,只需用您的按钮切换该标志,它将启用或禁用淡入淡出行为。

另一答案

单击该按钮,在对象/项目上使用$(selector).unbind('mousein')取消注册事件,并在另一次单击按钮时重新注册。每次点击按钮都要保持切换。

以上是关于在jQuery或Javascript中切换事件捕获?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 在 iframe 中捕获鼠标右键单击事件

如果一个事件触发了随机次数,我如何在 Javascript/Jquery 中捕获最后一个?

JavaScript事件委托原理及Jquery中的事件委托

mvc3 + jQuery 验证:如何捕获错误或正常事件

捕获 DIV 元素上的按键(或 keydown)事件

理解:javascript事件捕获 与 事件冒泡