当innerHtml使用Ajax更改时,如何调用javascript函数来运行?
我正在使用Ajax通过在链接上使用onclick来更改div的innerHtml。从服务器检索文件并替换div的内容后,我需要调用javascript函数。我如何才能做到这一点当innerHtml使用Ajax更改时,如何调用javascript函数来运行?,javascript,html,ajax,Javascript,Html,Ajax,我正在使用Ajax通过在链接上使用onclick来更改div的innerHtml。从服务器检索文件并替换div的内容后,我需要调用javascript函数。我如何才能做到这一点 <div id="thisDiv"> <a href="this.php" onclick="ajaxfunction('thisfile.php','thisDiv');return false;">link</a> ... </div> ... ajaxfunct
<div id="thisDiv">
<a href="this.php" onclick="ajaxfunction('thisfile.php','thisDiv');return false;">link</a>
...
</div>
...
ajaxfunction函数将thisDiv的innerHtml替换为thisfile.php
提前谢谢你 如果要异步执行此操作,最简单的方法是只使用库。Prototype和jQuery是不错的选择。它们都提供了接受回调选项的AJAX函数,因此您可以在许多不同的情况下呈现不同的输出
例如,您可以在成功时执行一些操作,在失败时执行另一个操作,在操作进行时执行另一个操作,或者对每个HTML状态代码执行操作。我认为,假设您的AJAX请求是异步的,最好的方法是向函数添加回调参数,该参数将在请求结束时执行 由于您没有提到任何JavaScript库,也没有发布您的
ajaxfunction
,因此我认为您可能正在执行原始XHR请求,如果是这样,您可以例如:
function ajaxfunction (url, elementId, callback) {
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function(){
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
document.getElementById(elementId).innerHTML = xhr.responseText;
callback(); // the content has been loaded to the DOM, executing callback
} else {
alert('error');
}
}
};
xhr.send(null);
}
您可以这样使用函数(注意,我不建议在HTML上使用内联JavaScript事件绑定):
有关更全面的示例,请发布ajaxfunction
的代码
<a href="this.php"
onclick="ajaxfunction('thisfile.php','thisDiv', otherFn);return false;">link</a>
<a href="this.php" id="linkId">link</a>
window.onload = function () {
// Event binding...
document.getElementById('linkId').onclick = function () {
ajaxfunction('thisfile.php','thisDiv', function () {
alert('Content retrieved, this is the callback!');
return false;
});
};
// ....
};