jQuery: Какой правильный код для запуска событий в Internet Explorer? - PullRequest
2 голосов
/ 20 ноября 2010

Я использую jQuery 1.2.7 (я не могу обновить)

Чтобы вызвать события, когда выбранное значение выпадающего меню изменяется, мне сказали использовать следующий код:

$('#dropdownWidget').bind($.browser.msie ? 'click' : 'change', function(event) {
        //myEvent
});

Это скриншот виджета:

alt text

Он отлично работает во всех браузерах, однако в IE событие запускается каждый раз, когда пользователь нажимает на виджет(даже до того, как выбрано новое значение).

Поскольку я запускаю вызовы AJAX, я не могу этого допустить.Спасибо

Ответы [ 2 ]

3 голосов
/ 20 ноября 2010

Я склонен использовать событие click для всех браузеров, и с помощью IE получаю событие change, чтобы вызвать событие click.

$('#dropdownWidget').bind('click', function(event) {
        //myEvent
}).bind('change', function(event) {
    if ($.browser.msie) {
      $(this).click();
    }
});

Если событие change() действительно было исправлено, как предлагают другие, то, конечно, это избыточно. Но вы можете застрять, используя более старую кодовую базу jQuery.

1 голос
/ 20 ноября 2010

так почему вы добавили чек на msie?

просто попробуйте следующее:

$('#dropdownWidget').bind('change', function(event) {
      alert('test');  //myEvent
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...