Все события привязаны как часть нашего бутстрапа. Например, тег привязки с классом "bootstrapclick" привязан к событию click. Теперь я хотел написать дополнительную проверку onclick элемента anchor, поэтому я написал функцию onclick event. Но это срабатывает после события загрузки бутстрапа.
форма
<a href='#' id='mylink' class='bootstrapclick'> Click here </a>
JQuery
var link = $('#mylink')[0]; //=> document.getElementById('mylink');
link.onclick = function(e) {
//do additional validation
//and prevent bootstrap click event
};
Предложите, как сначала назначить приоритет для моего события кликов, чтобы я мог предотвратить запуск события щелчка начальной загрузки.
Capture event вместо использования addEventListener: {, поэтому событие будет запущено перед любым распространяющимся событием}
Если true, useCapture указывает, что пользователь хочет начать захват. После начала захвата все события указанного типа будут отправлены зарегистрированному прослушивателю перед отправкой на любые EventTargets под ним в дереве DOM. События, которые пузырятся вверх через дерево, не будут вызывать слушателя, назначенного для использования захвата.
var link = $('#mylink')[0]; //=> document.getElementById('mylink');
link.addEventListener("click", function(e){
//do additional validation
//and prevent bootstrap click event
if(notValid) // or whatever you use to validate
e.stopImmediatePropagation(); // this will prevent bootstrap click handler to be fired
}, true);
Теперь я не уверен, как bootstrap связывает свои собственные события.
Попробуй это
EDIT: это загорится на готовом документе - он удалит все события, связанные с этим элементом управления, и добавит обработчик события onclick с вашей логикой. Если после подготовки документа добавлен обработчик события начальной загрузки, вам нужно найти, когда и удалить его после его добавления x.off();
должен сделать это.
$(function(){
var x = $('#mylink');
x.off();
x.on('click', function(){
//...
});
});
Использовать .off()
в jquery
$('#mylink').on("click" , function(event) {
$(this).off("click");
event.preventDefault()
// do stuff here
}
.off()
.