![](/img/trans.png)
[英]Get all the event-handlers of a event declared in a custom user-control
[英]Set execution order of event-handlers of click event in jQuery?
我正在使用jQuery 1.9.1。
假設我有一個id =“ clickMe”的按鈕,我的jQuery代碼是:
$('#clickMe').click(function(event)
{
eventHandler1();//do something
eventHandler2();//use output from eventHandler1() and do something
}
現在,我希望最后執行“ eventHandler2”,以便可以使用“ eventHandler1”的輸出。 有什么方法可以手動執行此操作,而不僅僅是我將處理程序放入click事件中的方法? 另外一件事情,“ eventHandler1()”和“ eventHandler2()”存在於不同的.js文件中,因此是必需的。
jQuery.when()
提供了一種基於一個或多個對象(通常是表示異步事件的Deferred對象jQuery.when()
執行回調函數的方法。 例如,當延遲對象是jQuery.ajax()
請求時,參數將是請求的jqXHR objects
,按照在參數列表中給出的順序。
$.when(eventHandler1).then(eventHandler2).done(function(){
alert('done.');
});
因此,甚至可以使用GLOBAL
變量存儲eventHandler1
輸出並在eventHandler2
內部訪問該變量
例
var someVar;
function eventHandler1()
{
// process
someVar = some value from process
return someVar;
}
function eventHandler2()
{
alert(someVar);
}
對OP評論的回應
如您在隊列中詢問執行處理程序時,可以使用Jai
答案。
您可以使用.when
.then
和.done
如下。
$.when(eventHandler1).then(eventHandler2).done(function(){
//process code
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.