javascript - 如何临时存储和禁用另一个元素的事件

标签 javascript jquery hover click jquery-data

我正在寻找一种管理事件的方法。我有元素 A 的悬停功能,元素 B 的单击功能。我想在第二次单击 B 时暂时禁用 A 的悬停功能。

我正在寻找一种不需要重写B内部A的洞函数的方法。非常简单的事情就像“存储和禁用事件,调用存储的函数”

我发现了一些技术,例如 .data('events') 和 console.log。我很累但是失败了,或者我写错了。

请大家帮忙指点一下!

$(A).hover();

$(b).click( 

     if($.hasData($(A)[0])){   // if A has event,
             //STORE all the event A has, and disable
     }else{
            //ENABLE the stored event for A
     }
 );

最佳答案

试试这个

 var hoverme = function() {
    alert('Hover Event Fired');
};

$('.A').hover(hoverme);

var i = 0;

$('.B').on('click', function(){
    if(i%2 === 0){
        // Unbind event
        $('.A').off('hover');
    }
    else{
        // Else bind the event
        $('.A').hover(hoverme);
    }
    i++;
});

<强> Check Fiddle

关于javascript - 如何临时存储和禁用另一个元素的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096504/

相关文章:

php - 如何取消设置全局变量。

javascript - 动态创建的元素上的事件绑定(bind)?

Javascript 模拟 "hover"触发 CSS 属性

javascript - 提交表单而不刷新页面

javascript - 创建一个时间间隔,使函数在 JavaScript 中随机运行

javascript - 我们如何通过 JQuery 创建另一个带有一些选项的选择框

javascript - 如何对齐具有不同列数的两行

java - 悬停时图像变化 Java

html - CSS :hover selects the wrong element in IE8

javascript - 与 Webpack 的 resolve.root 选项同构 React