Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
幻灯片上的jquery删除按钮的悬停状态_Jquery_Hover_Jquery Animate - Fatal编程技术网

幻灯片上的jquery删除按钮的悬停状态

幻灯片上的jquery删除按钮的悬停状态,jquery,hover,jquery-animate,Jquery,Hover,Jquery Animate,使用Jquery,当您单击按钮时,我有一个简单的向下滑动div。 问题是,按钮:悬停状态未被删除。 JS小提琴: (请注意,在我的网站版本中,我实际上需要再次将鼠标移到按钮上,然后再将鼠标移出,以使其返回正常状态) 以下是JS代码: $("a").click(function() { var div = $("#toggleDiv"); if (!div.hasClass("open")) { div.animate({

使用Jquery,当您单击按钮时,我有一个简单的向下滑动div。 问题是,按钮:悬停状态未被删除。

JS小提琴:

(请注意,在我的网站版本中,我实际上需要再次将鼠标移到按钮上,然后再将鼠标移出,以使其返回正常状态)

以下是JS代码:

   $("a").click(function() {
        var div = $("#toggleDiv"); 
        if (!div.hasClass("open")) {
            div.animate({
                height: "300px"
            },"fast").addClass("open");
        } else {
            div.animate({
                height: "150px"
            },"fast").removeClass("open");

        }
        return false;
    });
正如您将在小提琴中看到的,滑动后a链接保持红色。在这个简单的例子中,这看起来不是什么大问题,但在我的网站上,这真的很烦人

我的问题是:

我做错什么了吗?或者如何在单击时删除:悬停状态?


(我对Twitter引导工具提示也有类似的问题)。

在我的测试中,每当我移动鼠标时,它就会自动删除,但保持链接“悬停”仍然令人不快。你可以这样欺骗它:

$(this).unbind('onmouseover').unbind('onmouseout');
$("a").hover(function(){
//Do fancy stuff
});
    function hoverLinkEffect(e) {
        // Do fancy stuff                                
    }

//Then on the a click event handler
$(this).unbind('onmouseover').unbind('onmouseout').on('hover',hoverLinkEffect);
但是,如果您已经绑定了这些事件的事件,则应在删除事件后重新连接

仅适用于以下情况:

$(this).unbind('onmouseover').unbind('onmouseout');
$("a").hover(function(){
//Do fancy stuff
});
    function hoverLinkEffect(e) {
        // Do fancy stuff                                
    }

//Then on the a click event handler
$(this).unbind('onmouseover').unbind('onmouseout').on('hover',hoverLinkEffect);
所以你可以这样做:

$(this).unbind('onmouseover').unbind('onmouseout');
$("a").hover(function(){
//Do fancy stuff
});
    function hoverLinkEffect(e) {
        // Do fancy stuff                                
    }

//Then on the a click event handler
$(this).unbind('onmouseover').unbind('onmouseout').on('hover',hoverLinkEffect);
以下是完整的代码:

$(document).ready(function() {

    $("a").click(function() {
        $(this).unbind('onmouseover').unbind('onmouseout');
        var div = $("#toggleDiv"); 
        if (!div.hasClass("open")) {
            div.animate({
                height: "300px"
            },"fast").addClass("open");
        } else {
            div.animate({
                height: "150px"
            },"fast").removeClass("open");

        }
        return false;
    });

});​

谢谢但我似乎仍然有这个问题。我该如何重新绑定事件?我需要创建另一个侦听器?您正在哪个浏览器中尝试?Mac上的Chrome最新版本。使用重新绑定更新了答案。我已经在Firefox、Chrome甚至Explorer上进行了测试,一旦我点击,你的例子中的链接就会变成蓝色。为了澄清,我正在制作与Youtube视频描述中的“显示更多”按钮大致相同的按钮。