使用Jquery,当您单击按钮时,我可以简单地向下滑动div。 问题是,按钮:悬停状态未被删除。
JS FIDDLE:http://jsfiddle.net/Y6gHb/9/
(小注意,在我的网站版本上,我实际上需要再次鼠标悬停按钮,然后鼠标移开,以使其恢复正常状态。)
这是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;
});
正如您在小提琴中看到的那样,幻灯片后链接会保持红色。在这个简单的例子中,这看起来不是一个大问题,但在我的网站上,它真的很烦人。
我的问题是:
我做错了吗?或者如何在点击时删除:悬停状态?
(我在Twitter bootstrap工具提示中遇到了类似的问题)。
答案 0 :(得分:1)
在我的测试中,每当我移动鼠标时它都会移除它,但是仍然不能保持链接“徘徊”#34;你可以这样欺骗它:
$(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;
});
});