У меня довольно простая компоновка с очень странным результатом.JQuery .toggle() и кнопка браузера
$(".main").on("hover", ".js_post", function() {
$(this).children('.js_del').toggle();
});
По существу, когда пользователь парит над .js_post DIV, то .js_del DIV переключается. Вот CSS, который скрывает .js_del:
.js_del { display:none; }
Теперь, когда курсор находится над .js_post, то .js_del DIV переключается, как и ожидалось. Но когда пользователь нажимает на ссылку в div .js_post, а затем нажимает кнопку браузера, происходят странные вещи ...
В 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/ из него :) скорее всего, люди будут помогать –
Ну, так как вы не должны использовать «парить» псевдо событие так или иначе (он ушел в 1.9), я бы предложил переключиться на mouseenter и mouseleave и два отдельных события, один из которых показывает, другой, который скрывается. Это предотвратит переключение между синхронизацией событий. –
@PaulSullivan - Я думал о jsfiddle, но я не думаю, что смогу продемонстрировать щелчок a, а затем нажатие кнопки браузера ...? –