簡體   English   中英

如何將JQuery事件處理程序分配給特定事件

[英]How to assign a JQuery event handlers to a specific event

我有以下按下按鈕時執行的名為Howto的Javascript函數:

function howto(){

   $('#elementtoupdate').ajaxSend(function() {
       //Code to execute
   });

   $('#elementtoupdate').ajaxComplete(function() {
       //Code to execute
   });

   $('#elementtoupdate').load('serverside/file_path.php')
}

使用JQuery,該函數分配兩個JQuery全局Ajax事件處理程序,它們在啟動任何AJAX調用時啟動。 然后函數繼續並調用JQuery .load函數,並啟動全局Ajax事件處理程序中的任何代碼。

但是,正如Global所說的那樣,它們也是由其他Jquery AJAX調用啟動的。 不幸的是,這是不可取的,因為我在腳本中有其他AJAX調用。 我需要只在執行$('#elementtoupdate').load('serverside/file_path.php')執行代碼。

這樣做的最佳方式是什么?

load有自己的回調,它不是全局的:

.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )

從而:

$('#elementtoupdate').load('serverside/file_path.php', function() {
  // complete
});

你應該接受David Hedlund的回答。 為了完整起見:

你可以改變 :

function howto(){

   $('#elementtoupdate').ajaxSend(function() {
       //code to be executed before send
   });

   $('#elementtoupdate').ajaxComplete(function() {
       //code to be executed after completed
   });

   $('#elementtoupdate').load('serverside/file_path.php')
}

至 :

function howto(){
    //code to be executed before send

    $('#elementtoupdate').load('serverside/file_path.php', function(){
        //code to be executed after completed
    })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM