繁体   English   中英

在不使用jQuery的情况下,通过AJAX加载html元素后,如何在JavaScript中执行函数?

[英]How to execute a function in javascript after an html element is loaded via AJAX without jQuery?

通过AJAX加载页面的一部分后,我需要执行给定的javascript函数。 我无法控制页面的加载方式,因此无法触发页面中的事件,我想我需要检查主体以查找所需的元素,然后在该元素存在后执行。

我看到可以使用jQuery“ .on”方法执行此操作,但是我的jQuery版本是在引入此功能之前的版本,因此我无法使用它。 不使用第三方库执行此操作的最佳方法是什么?

这是使用jQuery的示例:

//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");
})

PS:发布此问题之前,我已经阅读了相关问题。 如何将函数绑定到通过Ajax加载的Element

您可以创建一个函数,以在元素加载时调用,还可以创建另一个函数以检查是否以一定间隔加载元素。 然后将负载检查功能附加到主体的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>

Plunker

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM