我按下按钮时会执行以下名为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')
时执行代码。
这样做的最佳方式是什么?
答案 0 :(得分:4)
load
自身的回调本身并非全局:
.load( url [, data ] [, complete(responseText, textStatus, XMLHttpRequest) ] )
因此:
$('#elementtoupdate').load('serverside/file_path.php', function() {
// complete
});
答案 1 :(得分: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
})
}