Развяжите jQuery даже обработчик

Я попробовал ваш код, и, похоже, он хорошо работает в IE.

Мне жаль, что я запутался в проблеме, с которой вы столкнулись.

Вы можете увидеть мой результат в IE11.

before print

print result

8
задан Brian Tompsett - 汤莱恩 23 August 2019 в 08:49
поделиться

3 ответа

Первый сценарий отмены привязки не работает из-за модели событий jQuery. jQuery сохраняет каждую функцию обработчика событий в массиве, к которому вы можете получить доступ через $ ("# foo"). data ('events') . Функция unbind ищет только данную функцию в этом массиве. Таким образом, вы можете только обработчики событий unbind () , которые были добавлены с помощью bind ()

12
ответ дан 5 December 2019 в 07:36
поделиться

I ran into a similar issue before. What I concluded was that you can only unbind a method you have binded. Since trialmethod() was NOT binded through jquery, calling unbind on the method wouldnt work.

Please let us know if you figure it out by any chance.

Thanks.

1
ответ дан 5 December 2019 в 07:36
поделиться

Никто никогда не должен смешивать свою разметку со своим кодом взаимодействия, если они используют jQuery.

Добавьте некоторый javascript на страницу, например так:

$(function() {
    $('#aspnetForm').bind('submit',function() {
        trialMethod();
    });
    $('#btnTrial2').bind('click',function() {
        $('#aspnetForm').unbind('submit');
    });
    $('#btnTrial2').bind('click',function() {
        $('#aspnetForm').bind('submit', trialMethod2).unbind('submit');
    });
});

Теперь, с этим вне пути ... Теперь все должно работать (даже если теперь вы будете дважды связывать #aspnetForm перед тем, как полностью отсоединять его при нажатии второй кнопки). Проблема заключалась в том, что форма никогда не была «обязательной» для начала. Вы можете отменить привязку параметров onsubmit к разметке.

5
ответ дан 5 December 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: