Jquery - 如何在更改div内容时启动函数

时间:2010-08-16 12:25:17

标签: jquery

我搜索了一个类似的解决方案:

if( content from $('#div') is change -> start function test(); )

我使用$('#div').html('blub');

更改内容

提前致谢! 彼得

PS:我知道,有可能使用setTimeout,但这是一个非常脏的解决方案:/

5 个答案:

答案 0 :(得分:2)

我认为实现这一目标的最佳方法是编写一个自定义的html函数,如下所示:

function changeHtml(content) {
    this.html(content);
    yourChangeHandler(this);
}

修改:或使用更改活动... http://forum.jquery.com/topic/what-is-the-best-way-to-handle-onchange-event-on-a-div

答案 1 :(得分:0)

可以通过2种方式完成 1)创建新的jquery方法并在调用jquery hml函数之前调用测试函数。因此,不是$('#div')。html('blub')你会写 $ .myhtml($(“#div”)。html())下面的代码可能会给你一些想法(有它工作)

**jQuery.extend(jQuery, { myhtml: function (arg1, html) { 
         test();
       return arg1.html(html); 
} });** 
 call by $.myhtml($("#div"), $("#div").html()) or $.myhtml($("#div"))

2)覆盖jquery html函数http://www.bennadel.com/blog/1624-Ask-Ben-Overriding-Core-jQuery-Methods.htm

var refhtml = $.fn.html;

$.fn.html = function() {
    $(this).each(function() {
       test();
        refhtml .apply(this, arguments);
    });
};

答案 2 :(得分:0)

在.html之后链接.test()。

$('#div').html('blub').test();

要实现这一点,只需制作一个插件即可。

Like this (jsFiddle example)

jQuery.fn.test = function() { 
    // Your test function goes here. 
    return this.each()};

需要返回,因为方法必须返回jQuery对象,除非明确指出jQuery插件。阅读jQuery插件here

答案 3 :(得分:-1)

答案 4 :(得分:-1)

这将完成这项工作    $('#div').change(function(){ test(); });