Подтвердить что ты не робот

Как остановить события, пузырящиеся в jQuery?

Как остановить настраиваемое событие в jQuery?

Например, у меня есть этот код:

$('.myclass').bind('amodaldestroy', function(){
    ....does something.....
})

Как я могу разрешить запуск этого события только на первом элементе, который он обнаруживает при кипячении? Можно ли добавить return false?

$('.myclass').bind('amodaldestroy', function(){
     ....does something.....
    return false;
})
4b9b3361

Ответ 1

В соответствии с jQuery документация:

$('myclass').bind('amodaldestroy'), function(event) {
    ....does something....
    event.stopPropagation();
});

Ответ 2

Используйте event.stopPropagation();

$('.myclass').bind('amodaldestroy', function(e){
    e.stopPropagation();
});

Вы также можете использовать return false, но есть тонкая разница между ними в том, что возвращение false также вызывает event.preventDefault();

Ответ 3

Для поддержки в IE < 9:

$(".element").click(function(e)
{
    var event = e || window.event;
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);
});

Ответ 4

Это может быть не так уж хорошо, но

return false;

return false будет делать как stopPropagation, так и event.preventDefault...

если вы хотите только один, который вы можете выбрать по вашему выбору

пожалуйста, прочитайте это, это только от SO

return false эффективно и предотвращает дефолт и stopPropogation.

preventDefault предотвратит появление события по умолчанию, stopPropogatio n предотвратит появление пузырьков и возврат false сделает оба.