是否有一个函数在元素被渲染时被触发

Is there a function that gets triggered when an element is rendered?

本文关键字:是否 函数 元素 有一个      更新时间:2023-09-26

jQuery中是否存在某种on render函数。我希望每当在屏幕上添加具有指定类或ID的新元素时,无论是在页面加载时,还是在AJAX请求返回HTML后,都能触发此函数。

编辑:我想要一个回调,每当创建具有我定义的类或ID的新元素时就会触发。当事情发生变化时就不会。我宁愿不使用插件。

mmmmm。。。。。

我的建议:

创建Factory function创建元素

每次你想创建一个元素,

通过创建元素的中心化函数传递它。

她将有"创建什么"的练习表

她会创造它。

然后,将"在创建元素"后的代码放在同一个函数

有一个新的事件,但和往常一样,它不适用于<IE9:

<head>
    <script type="text/javascript">
    function AddTextToContainer () {
        var textNode = document.createTextNode ("My text");
        if (textNode.addEventListener) {
            textNode.addEventListener ('DOMNodeInserted', OnNodeInserted, false);
        }
        var container = document.getElementById ("container");
        container.appendChild (textNode);
    }
    function OnNodeInserted (event) {
        var textNode = event.target;
        alert ("The text node '" + textNode.data + "' has been added to an element.");
    }
    </script>
</head>
<body>
    <div id="container" style="background-color:#e0d0a0; width:300px; height:100px;"></div>
    <br /><br />
    <button onclick="AddTextToContainer ();">Add a text node to the container!</button>
</body>

我是这样解决的:

$('html').change(function() {
    $('.element').each(function() {
        // Do stuff.
    });
});

这样,我就可以有一个数组来跟踪我的所有元素,当触发HTML更改时,检查是否有元素不在我的数组中,从而检查是否有新元素。

$(document).on('DOMSubtreeModified',function(){
    // something changed
});

也许这对你有用,但我不确定是否每个浏览器都支持这个活动。编辑:甚至这个事件也被否决了。所以你不应该使用它。关于可用事件的快速概述:

  • http://www.quirksmode.org/dom/events/#t18