所有事件都作为我们引导程序的一部分绑定。例如,锚标记带有' bootstrapclick' class被绑定到click事件。现在,我想在锚点元素上编写额外的验证,所以我编写了一个函数onclick事件。但这是在引导点击事件后触发的。
表格
<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
};
建议如何优先处理我的点击事件,以便我可以阻止触发bootstrap的点击事件。
答案 0 :(得分:0)
试试这个
编辑:这将触发文档就绪 - 它将删除绑定到此控件的所有事件,并将使用您的逻辑添加onclick事件处理程序。如果在文档准备好之后添加了引导程序事件处理程序,则需要在添加它之后找到它并将其删除x.off();
应该这样做。
$(function(){
var x = $('#mylink');
x.off();
x.on('click', function(){
//...
});
});
答案 1 :(得分:0)
使用addEventListener捕获事件:{so event将在任何传播事件之前触发}
如果为true,则useCapture表示用户希望启动 捕获。启动捕获后,指定类型的所有事件 将在发送之前发送给注册的听众 到DOM树下面的任何EventTargets。事件是 向上冒泡树不会触发听众 指定使用捕获。
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如何绑定自己的事件。
答案 2 :(得分:0)
在jquery中使用.off()
$('#mylink').on("click" , function(event) {
$(this).off("click");
event.preventDefault()
// do stuff here
}