在没有jQuery的情况下通过AJAX加载html元素后,如何在javascript中执行函数?
我需要在页面的一部分通过AJAX加载后执行给定的javascript函数。我无法控制页面的加载方式,因此从页面触发事件不是一个选项,我想我需要检查我需要的元素的主体,并在该元素存在后执行 我看到我可以使用jQuery“.on”方法来实现这一点,但我的jQuery版本是在引入此功能之前的版本,所以我不能使用它。不使用第三方库的最佳方法是什么 下面是一个使用jQuery的示例:在没有jQuery的情况下通过AJAX加载html元素后,如何在javascript中执行函数?,javascript,html,ajax,Javascript,Html,Ajax,我需要在页面的一部分通过AJAX加载后执行给定的javascript函数。我无法控制页面的加载方式,因此从页面触发事件不是一个选项,我想我需要检查我需要的元素的主体,并在该元素存在后执行 我看到我可以使用jQuery“.on”方法来实现这一点,但我的jQuery版本是在引入此功能之前的版本,所以我不能使用它。不使用第三方库的最佳方法是什么 下面是一个使用jQuery的示例: //bind to the body a "load" handler for elements that have cl
//bind to the body a "load" handler for elements that have class names of "hello"
$('body').on('load','.hello',function(){
alert("Hello is fully loaded, proceed with your program logic");
})
附言:我在发布这篇文章之前读过的相关问题 您可以创建一个在加载元素时调用的函数,以及另一个检查元素是否按间隔加载的函数。然后将负载检查功能附加到车身的
onload
属性。例如:
<body onload="checkLoaded()">
<script type="text/javascript">
var afterLoaded = function() {
// code to execute once elements are in place
console.log("Elements loaded.");
};
var checkLoaded = function() {
var interval = setInterval(function() {
if(document.getElementsByClassName("hello").length) {
clearInterval(interval);
afterLoaded();
}
}, 1000);
};
</script>
var afterLoaded=函数(){
//元素就位后执行的代码
log(“加载的元素”);
};
var checkload=函数(){
var interval=setInterval(函数(){
if(document.getElementsByClassName(“hello”).length){
间隔时间;
后加载();
}
}, 1000);
};
您使用的是哪个版本的jquery?body onload与ajax加载事件或DOM Ready不同。@smerny
如果没有jquery,您将在这种情况下使用ajax调用的“成功”回调。@ElmoVanKielmo,OP说他使用的是旧版本的jquery,可能会说“没有jquery”只是因为他没有意识到仍然使用jquery有一种不同的方法来实现它。有点像这样。但这不是只执行一次吗,当尸体完成装载时?我需要它一直检查,直到通过AJAX加载“hello”元素。如果这持续检查不止一次,它就解决了我的问题。是这样吗?@ThiagoMoraes,如果你想在每次ajax成功完成时都发生一些事情。。。为什么不在ajax上使用回调?@smerny,因为我不控制网站。我只是在那里插入了一个javascript标记,无法访问他们这方面的任何内容。确实会容易得多,但在我的情况下不起作用:(没有一种非常有效的方法来满足您的要求,但有一些方法。您可以使用我发布的相同函数,将其包装在setInterval()
中,当您找到可以使用的元素时,clearInterval()
@sxnine我想我要走setInterval的路。考虑到我现有的局限性,似乎还不算太糟。。。