jQuery事件处理程序总是以绑定的顺序执行,这可能很烦人.例如:
$('span').click(doStuff1);
$('span').click(doStuff2);
Run Code Online (Sandbox Code Playgroud)
单击跨度将导致doStuff1()触发,然后doStuff2().
在我绑定doStuff2()时,我想在 doStuff1()之前选择绑定它,但似乎没有任何简单的方法来执行此操作.
我想大多数人会说,只需编写如下代码:
$('span').click(function (){
doStuff2();
doStuff1();
});
Run Code Online (Sandbox Code Playgroud)
但这只是一个简单的例子 - 在实践中,这样做并不总是方便.
在某些情况下,您要绑定事件,并且您绑定的对象已经有事件.在这种情况下,您可能只希望在任何其他现有事件之前触发新事件.
那么在jQuery中实现这一目标的最佳方法是什么?
javascript jquery事件处理如果在事件上(例如'click')为父元素绑定了一个函数,为子DOM元素绑定了另一个处理函数,它们中的哪一个被调用?如果他们所有人都会按照哪个顺序打电话?谢谢!
我想getUser()通过onclick事件或监听器来执行该功能.我已经试过了两个,但是,它们都没有工作.
您可以在下面找到我的代码.我怎样才能使它工作?
我已经尝试使用按钮和输入而不是div,不能正常工作.如果您使用按钮或输入而不是div,则甚至不是听众.
$(document).on('focus', '#search_input', function() {
$("#autocomplete-list").show();
});
$(document).on('blur', '#search_input', function() {
$("#autocomplete-list").hide();
});
$(document).on('click', '.search-items', function() {
console.log(this);
});
function getUser(id){
console.log(id + "triggered");
}Run Code Online (Sandbox Code Playgroud)
/* Autocomplete Stlying */
.autocomplete-items {
position: absolute;
border: 1px solid #d4d4d4;
border-bottom: none;
border-top: none;
z-index: 99;
/*position the autocomplete items to be the same width as the container:*/
top: 100%;
left: 15px;
right: 15px;
}
.autocomplete-items div {
padding: 10px;
cursor: pointer;
background-color: #fff;
border-bottom: 1px solid #d4d4d4;
text-align: …Run Code Online (Sandbox Code Playgroud)