我有一個相當簡單的佈局,結果非常奇怪。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