我搜索了一个类似的解决方案:
if( content from $('#div') is change -> start function test(); )
我使用$('#div').html('blub');
提前致谢! 彼得
PS:我知道,有可能使用setTimeout,但这是一个非常脏的解决方案:/
答案 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();
要实现这一点,只需制作一个插件即可。
jQuery.fn.test = function() {
// Your test function goes here.
return this.each()};
需要返回,因为方法必须返回jQuery对象,除非明确指出jQuery插件。阅读jQuery插件here。
答案 3 :(得分:-1)
答案 4 :(得分:-1)
这将完成这项工作
$('#div').change(function(){
test();
});