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

时间:2012-02-16 14:19:49

标签: javascript jquery html

jQuery中是否存在某种渲染函数。我希望只要在页面加载时,或者在返回HTML的AJAX请求之后,只要在屏幕上添加具有指定类或ID的新元素,就会触发此函数。

编辑:我希望每当创建具有我定义的类或ID的新元素时,都会触发回调。不是什么东西改变了。我不想使用插件。

4 个答案:

答案 0 :(得分:0)

MMMMM .....

我的建议:

创建元素创建的Factory function

每次要创建元素时,

通过 centrelized函数传递它创建元素。

她将参与“创造什么”

她会创造它。

然后,在同一个函数中创建元素“之后,将”的代码放入

答案 1 :(得分:0)

我这样解决:

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

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

答案 2 :(得分:0)

有一个新的事件,但像往常一样,它不适用于< 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>

答案 3 :(得分:-1)

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

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