我有一个相当简单的布局,结果非常奇怪。Jquery .toggle()和浏览器后退按钮
$(".main").on("hover", ".js_post", function() {
$(this).children('.js_del').toggle();
});
本质上,当用户悬停在.js_post DIV中,.js_del DIV翻转。下面是隐藏.js_del的CSS:
.js_del { display:none; }
现在,当光标悬停.js_post,在.js_del DIV切换,符合市场预期。但是,当用户单击.js_post div中的链接,然后单击浏览器后退按钮时,会发生奇怪的事情...
在FF中,所有作品都可以期待(即浏览器将点击解释为mouseleave并切换.js_del。)
但是,在Safari中,当用户点击后退时,浏览器应用反向切换(即.js_del显示,并且当光标悬停在.js_post上时,.js_del链接消失。)
即使怪异......
我决定添加一个处理程序手动隐藏.js_del DIV每当.js_post内“一”元素被点击这样的:
$(".js_post").find("a").click(function() {
$(this).parents('.js_post').children('.js_del').hide();
});
而现在,在Safari中查看时,所有的作品如预期,但在FF,它的相反(即.js_del正显示出,当光标悬停.js_post,.js_del链接消失)!
任何想法???谢谢!
我想,做的jsfiddle http://jsfiddle.net/,因为你不应该无论如何使用“悬停”伪事件的吧:)更容易让人将帮助 – 2013-04-23 18:45:29
好(它已经在1.9了),我建议切换到mouseenter和mouseleave以及两个单独的事件,一个显示,另一个隐藏。这将防止切换与事件不同步。 – 2013-04-23 18:45:58
@PaulSullivan - 我想过jsfiddle,但我不认为我可以演示点击一个,然后点击浏览器后退按钮...? – 2013-04-23 19:12:47