stopPropagation не работает в Mozilla Firefox

Всем добрый день. Может ли кто-нибудь объяснить, почему следующий код работает в Google Chrome, а не в Mozilla Firefox? Цель состоит в том, чтобы показать панель со ссылками (то есть дочерний элемент) при первом нажатии на элемент, скрыть ее при втором, и ссылки должны работать. В Mozilla, когда вы нажимаете на ссылку (как дочерний элемент дочернего элемента), контейнер ссылок просто скрывается, и stopPropagation не работает.

    reasonToggle = $("#element").toggle(function() {
        $("#links-container").css("visibility", "visible");
        $("#links-container").fadeTo(500, 1);
    }, function() {
        $("#links-container").fadeTo(500, 0, function() {
            $("#links-container").css("visibility", "hidden");
        });
    });
    $("#element a").click(function() {
        event.stopPropagation(reasonToggle);
    ;});

HTML-структура:

<div id="element"> 
    <div id="links-container">
        <a href=""> Link1 </a>
        <a href=""> Link2 </a>
        <a href=""> Link3 </a>
    </div
</div>

Я думаю, что найти обходной путь не проблема, но действительно интересно понять, что не так с кодом. Спасибо.


person user1423174    schedule 29.05.2012    source источник
comment
Что делать event.stopPropagation(reasonToggle)? stopPropagation() не принимает никаких параметров   -  person Ja͢ck    schedule 29.05.2012


Ответы (1)


Вам не хватает event в анонимной функции вашего обработчика кликов.

$("#element a").click(function() {
//                            ^^
person Ja͢ck    schedule 29.05.2012
comment
если вы имеете в виду: $(#причины a).click(function(reasonToggle) { event.stopPropagation(); }); он по-прежнему не работает в Mozilla (и работает в Chrome) - person user1423174; 29.05.2012
comment
Нет, я имел в виду $('#element a').click(function(event) { evt.stopPropagation(); } - person Ja͢ck; 29.05.2012