当div中的内部html改变时的火灾事件

时间:2013-07-28 12:01:42

标签: javascript jquery html

我有div的某些信息,通过点击按钮填入.innerHTML。目标是我想在添加div中的文本时.slideDown div。可以用jQuery做到吗?

示例:

<div id="calcInfo"></div>

在div中添加文字 -

document.getElementById("calcInfo").innerHTML = 'someText';

我想在它之后使用这个功能:)

if ($('#calcInfo').text().trim().length > 0) {
   $('#calcInfo').slideDown('slow', function() {});
};

我正在尝试.change()功能,但它仅适用于inputtextarea元素。非常感谢您的回答!

的Ondrej

1 个答案:

答案 0 :(得分:11)

您可以通过扩展$ .html函数来实现。像这样:

(function($)
{
    var oldHtml = $.fn.html;
    $.fn.html = function()
    {
        var ret = oldHtml.apply(this, arguments);

        //trigger your event.
        this.trigger("change");

        return ret;
    };
})(jQuery);

附加事件处理程序:

$("#calcInfo").on("change",function(){
     if ($(this).text().trim().length > 0) {
        $(this).slideDown('slow', function() {});
     };
});

当您需要更改HTML时。这样做:

$("#calcInfo").html('someText');