В следующем примере http://jsfiddle.net/anu4nits/449d5j8e/как остановить выполнение события щелчка от обработчика события OnChange
<input type="text" id="in" /> <input type="button" value="click" id="button" /> $('#in').change(function() { console.log('change event'); dialog.dialog("open"); }); $('#button').on('click', function (e) { console.log('click event'); });
Я прилагаю два события, одно событие OnChange на текст и другой нажмите на кнопку событие. Если я пишу что-то в текстовом поле и нажимаю на кнопку, тогда обработчик события изменения и обработчик события click должен быть выполнен соответственно. Но поскольку я вызываю модальный диалог в обработчике события изменения, обработчик события click не выполняется, что ожидается, поскольку модальное диалоговое окно не позволит выполнять фоновые действия. Но это только с хром и мозилла. В обработчике IE оба события выполняются.
Я хочу, чтобы последовательное поведение для всех браузеров желательно, я не хочу, чтобы выполнение обработчика кликов в IE. Я также не хочу помещать флаг на глобальном уровне для проверки состояния. Также я не могу отделить событие от кнопки, как в моем ID кнопки приложения, и его обработчик генерируется во время выполнения. Есть ли другой способ остановить выполнение события click от обработчика события изменения.
щелчок и изменение обоих являются отдельными событиями, и поэтому невозможно остановить распространение одного из другого таким образом. Ваш код остановит распространение только в событии обмена в дереве dom – Ninja
попробуйте этот скрипт. Это предотвратит запуск события клика по мере возникновения события изменения. – shaN
В каком браузере вы выполнили это? – Ninja