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

时间:2011-12-11 06:59:53

标签: javascript jquery javascript-events hover

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

我想创建一个按钮,以便在单击时,面板元素不会fadeIn或向外但保持可见。单击该按钮后,mouseInmouseOut事件应该再次起作用。

有什么想法吗?

谢谢!

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

2 个答案:

答案 0 :(得分:1)

设置是否进行淡入淡出的标志:

$(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;
});

});

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

答案 1 :(得分:-1)

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