[英]Jquery run onClick function as separate function
我有一個jquery
onClick
函數:
$('body').on('click', '#id_name', function() {
...
我想將此功能作為ajax調用上的另一個功能執行(當前這僅是onclick
)。
如果我的ajax
調用成功,則:
success: function() {
// then execute top function
}
有可能這樣做嗎?
然后,您可以在ajax成功回調中使用$('#id_name').trigger('click')
。
將函數命名為(非匿名)函數:
var someFunction = function () {
//...
};
然后,您可以將其用於點擊事件:
$('body').on('click', '#id_name', someFunction);
或您的回調:
success: someFunction
或從中調用它:
success: function () {
someFunction();
}
基本上,一旦給函數命名,並且不再是匿名的,就可以在范圍內的任何地方引用它。
創建一個委托函數並分別調用
例如
function mainFunction(){
// Rest of code
}
在點擊調用
$('body').on('click', '#id_name', mainFunction)
這樣的內部ajax成功調用
success: function() {
mainFunction()
}
好吧,您可以顯式觸發click事件。 甚至更好的是,將點擊代碼外包到自己的函數中,然后可以在成功函數中調用它。 所以,代替
success: function() {
$('#id_name').trigger('click')
}
做得更好:
function clickEvent() {
// do something in here...
}
$('body').on(
'click',
'#id_name',
function (eventArgs) {
eventArgs.preventDefault();
clickEvent();
}
);
然后,您可以使用以下命令將其簡單地調用到成功回調中:
success: function() {
clickEvent();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.