12
在執行某個函數之前是否可以「等待」多個事件?我知道它可能與jQuery
deferred
obejcts使用$.when
等待兩個承諾解決,但我想知道它是否可能只是普通的舊事件?jQuery等待多個事件觸發
比方說click事件和自定義事件觸發警報,例如:
$.when("click", "customEvent").then(function(){ alert("yay"); });
在執行某個函數之前是否可以「等待」多個事件?我知道它可能與jQuery
deferred
obejcts使用$.when
等待兩個承諾解決,但我想知道它是否可能只是普通的舊事件?jQuery等待多個事件觸發
比方說click事件和自定義事件觸發警報,例如:
$.when("click", "customEvent").then(function(){ alert("yay"); });
您可以遞延,你只需要自己創建它們。
var clickDfd = $.Deferred();
var eventDfd = $.Deferred();
$("div").on("click", function(e) {
clickDfd.resolve();
});
$("div").on("some-event", function(e) {
eventDfd.resolve();
});
$.when(clickDfd, eventDfd).done(function(){
alert("yay");
});
var click = 0;
var hover = 0;
$("div").on("click mouseenter", function(e) {
if(e.type == 'click') {
click = 1;
bana();
}
else if(e.type == 'mouseenter') {
hover = 1;
bana();
}
});
function bana() {
if(click == 1 && hover == 1) {
alert(1);
click = 0;
hover = 0;
}
else {
return false;
}
}
好,檢查事件類型和舊的方式設置它們。普通的jQuery和JS。
只有在兩個事件都完成/觸發時纔會觸發警報1。
希望它的工作原理,只要你想) – 2013-02-15 10:26:52
我已經使用這種方法認爲(也許會),我只是好奇,如果他們是某種整齊整潔「神奇」 jQuery的方式。感謝您的回答:) – JonWells 2013-02-15 10:29:51
@CrimsonChin我們只是不坐等人爲你做魔術。你應該搜索網絡或嘗試自己。那麼,在我看來,我認爲整潔的解決方案總是有幫助的。如果你決心做出一些大事,你也需要骯髒的解決方案。 – 2013-02-15 10:34:18