1

我有以下称为 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')执行代码。

这样做的最佳方法是什么?

4

2 回答 2

4

load有自己的非全局回调:

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

因此:

$('#elementtoupdate').load('serverside/file_path.php', function() {
  // complete
});
于 2013-10-08T12:23:20.380 回答
0

您应该接受 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
    })
}
于 2013-10-08T12:28:46.787 回答