jQuery 的 trigger
方法本身不支持異步事件的處理。但是,您可以使用以下方法在觸發同步事件后執行異步操作:
setTimeout
函數實現異步操作:$("#element").on("click", function() {
console.log("同步事件觸發");
setTimeout(function() {
console.log("異步操作執行");
}, 1000);
});
$("#element").trigger("click");
Promise
實現異步操作:$("#element").on("click", function() {
console.log("同步事件觸發");
return new Promise(function(resolve) {
setTimeout(function() {
console.log("異步操作執行");
resolve();
}, 1000);
});
});
$("#element").trigger("click").then(function() {
console.log("Promise 已解決");
});
async/await
實現異步操作:$("#element").on("click", async function() {
console.log("同步事件觸發");
await new Promise(function(resolve) {
setTimeout(function() {
console.log("異步操作執行");
resolve();
}, 1000);
});
});
$("#element").trigger("click");
請注意,這些方法都是在觸發同步事件后執行異步操作,而不是在觸發異步事件時處理它們。如果您需要在觸發異步事件時處理它們,您可能需要考慮使用其他事件監聽方法,例如 MutationObserver
或 EventSource
。