AFAIK, вы не можете надежно предотвратить запуск встроенного обработчика событий , прекратив всплывание внутри обработчика событий .
Кроме того, используя live()
или .delegate()
, вы не можете использовать preventDefault()
или stopPropagation()
. Вам нужно вернуть false , чтобы предотвратить фазу пузыря и поведение по умолчанию.
В любом случае, как я уже упоминал, вы не можете запретить встроенному обработчику событий запускаться с этим.
Так что, либо создайте его полностью unobtrusive
(что я настоятельно рекомендую), либо удалите этот встроенный обработчик кликов в коде.
* ** 1 022 тысяча двадцать-один * Пример:
$('#update-list').delegate('.popup-link', 'click', function(e){
$.popup(); // launch popup
return false;
}).delegate('.update', 'click', function(){
window.location('some_url');
})
// the rest of this is unnecessary if you can just omit the onclick attribute
.find('.update')
.removeAttr('onclick');
Ссылка: .delegate ()