2016-04-28 4 views
2

Я использую платформу, которая генерирует страницы с мини-js-файлами (Madcap Flare), и мне нужно добавить код в событие click. Я попытался следующие:Обходите event.preventDefault() в jQuery

$('body').on('click', 'a', function(e) { 
    alert(11111111111); 
    }) 

Это вызывает в некоторых местах, но не там, где мне нужно его, заставляя меня думать, где есть preventDefault() инструкция.

Есть ли способ обойти его?

Я прочитал около event.isDefaultPrevented(), но возможно ли, чтобы эта функция работала вне запускаемой функции? Я имею в виду, если вы находитесь внутри триггера, тогда это не было предотвращено, и если это предотвращено, как вам соответствовать инструкция isDefaultPrevented()?

ответ

2

... если вы находитесь внутри спускового механизма, то это не было предотвращено, и если это предотвращено, как вам встретить инструкцию isDefaultPrevented()?

Вы можете использовать его в другой функции связывания событий:

// Your original code 
$('body').on('click', 'a', function(e) { 
    alert(11111111111); 
    }) 

// Somewhere else in your code 
$('body').on('click', 'a.some-class', function(e) { 
    if(e.isDefaultPrevented()){ 
    console.log('Yeap, some other function has called e.preventDefault()'); 
    } 
}); 

Есть ли способ обойти это?

Yeap, вызвать новое событие. Вы можете создать new event object для этого.

+0

Спасибо, что отвечает на него, и ссылка полезна. – Francis

Смежные вопросы