Удаление события из одной ссылки с помощью, кажется, влияет на все - PullRequest
0 голосов
/ 13 июля 2009

У меня есть событие window.onbeforeunload, которое я хочу отключить, когда нажимаю на конкретную гиперссылку.

Я использую следующий JQuery:

    $(function() {
        $("a#<%= lockUnlock.ClientID %>").click(function() { 
            window.onbeforeunload = null; });
    });

Но когда я нажимаю на другие ссылки, событие не срабатывает.

Есть ли способ обойти это?

РЕДАКТИРОВАТЬ (подробнее):

Я использую asp.net

lockUnlock - это кнопка ссылки, которая находится на панели обновлений. Кнопка ссылки нажата, после того, как часть страницы вернула окно.onbeforeunload больше не работает.

Ответы [ 2 ]

0 голосов
/ 14 июля 2009

ClientID будет заполняться только в событии Page.PreRender. Если вы делаете это на Page.Load, то ClientID будет иметь пустое значение (или ноль). Это, вероятно, не то, что вы ожидаете от селектора jQuery.

0 голосов
/ 13 июля 2009

Не уверен, смогу ли я помочь, но вы уверены, что <%= lockUnlock.ClientID %> выходит не равным нулю? Очевидно, что если он оценивается как пустая строка, все ваши привязки в конечном итоге будут привязаны к этому обработчику кликов.

Кроме того, вы автоматически генерируете этот javascript? Если нет, то как <%= lockUnlock.ClientID %> заменяется фактическим идентификатором? Я не могу сказать, что использую ASP или ASP.NET столько же, сколько PHP, поэтому я немного обеспокоен тем, когда произойдет эта замена.

Надеюсь, все это выяснят!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...