jquery监听div内容的变化具体实现思路

 更新时间:2013年11月04日 15:42:57   作者:  
在开发过程中遇到了上面标题列出的问题:如何监听div内容的变化,下面是具体的解决思路,感兴趣的朋友可以参考下

我们做电子商务,javascript框架采用的是jQuery,在开发过程中遇到了上面标题列出的问题:如何监听div内容的变化。
先给出最终代码(后续进行相关分析):

复制代码 代码如下:

var title = $("b.facility");
var title = $('#title');//the element I want to monitor
title.bind('DOMNodeInserted', function(e) {
alert('element now contains: ' + $(e.target).html());
});

解决问题的思路如下:
我们先回顾一下jQuery事件中的change()方法定义和用法:
当元素的值发生改变时,会发生 change 事件。
该事件仅适用于文本域(text field),以及 textarea 和 select 元素。
change() 函数触发 change 事件,或规定当发生 change 事件时运行的函数。
注释:当用于 select 元素时,change 事件会在选择某个选项时发生。当用于 text field 或 text area 时,该事件会在元素失去焦点时发生。
但是问题出现了关于div内容的改变change方法中只字不提,我们如何处理那?
后续百度关键词: jquery div 内容发生变化:无果;
继续,bing关键词:jquery how to listen div change 找到一篇相关文档http://stackoverflow.com/questions/2712124/jquery-listen-to-changes-within-a-div-and-act-accordingly
粗略的明白是采用自定义事件的方式去处理问题,采纳代码如下:
复制代码 代码如下:

$('#laneconfigdisplay').bind('contentchanged', function() {
// do something after the div content has changed
alert('woo');
});
// 这样会调用上面的函数
$('#laneconfigdisplay').trigger('contentchanged');

但是contentchanged是什么内容没有说明,继续追溯
bing关键词:jquery how to listen div change 找到一篇相关文档
继续,bing关键词:jquery contentchanged 找到一篇相关文档http://stackoverflow.com/questions/1449666/create-a-jquery-special-event-for-content-changed
这篇文章详细说明了contentchanged内容定义,采纳代码如下:
复制代码 代码如下:

jQuery.fn.watch = function( id, fn ) {
returnthis.each(function(){
var self = this;
var oldVal = self[id];
$(self).data(
'watch_timer',
setInterval(function(){
if(self[id] !== oldVal) {
fn.call(self, id, oldVal, self[id]);
oldVal = self[id];
}
},100)
);
});
returnself;
};
jQuery.fn.unwatch = function( id ) {
returnthis.each(function(){
clearInterval( $(this).data('watch_timer') );
});
};

创建自定义事件
复制代码 代码如下:

jQuery.fn.valuechange = function(fn) {
returnthis.bind('valuechange', fn);
};
jQuery.event.special.valuechange = {
setup: function() {
jQuery(this).watch('value', function(){
jQuery.event.handle.call(this, {type:'valuechange'});
});
},
teardown: function() {
jQuery(this).unwatch('value');
}
};

貌似这样的解决是完美的但是后续再继续查看到时候,发现有更简洁的方式,代码如下:
复制代码 代码如下:

var title = $("b.facility");
var title = $('#title');//the element I want to monitor
title.bind('DOMNodeInserted', function(e) {
alert('element now contains: ' + $(e.target).html());
});

感觉这应该是我需要代码,do it !fine

相关文章

  • 解决ajax不能访问本地文件问题(利用js跨域原理)

    解决ajax不能访问本地文件问题(利用js跨域原理)

    本篇文章主要介绍了解决ajax不能访问本地文件问题(利用js跨域原理),具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • jquery原理以及学习技巧介绍

    jquery原理以及学习技巧介绍

    JQuery上手简单,也很容易学,即使是刚接触JQuery的开发人员,借助JQuery手册,也很快能在项目中使用开发,这篇文章针对jquery原理以及学习技巧进行介绍,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • jQuery实现二维码扫描功能

    jQuery实现二维码扫描功能

    这篇文章主要 介绍了jQuery利用jquery.qrcode.min.js插件实现二维码扫描功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 解析JSON对象与字符串之间的相互转换

    解析JSON对象与字符串之间的相互转换

    本篇文章主要是对JSON对象与字符串之间的相互转换进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 10个很棒的jQuery代码片段

    10个很棒的jQuery代码片段

    本文推荐10个应该收藏的、实现功能很棒的jQuery代码片段,需要的朋友可以参考下
    2015-09-09
  • jQuery基于ajax()使用serialize()提交form数据的方法

    jQuery基于ajax()使用serialize()提交form数据的方法

    这篇文章主要介绍了jQuery基于ajax()使用serialize()提交form数据的方法,结合实例形式较为详细的分析了jQuery使用ajax提交serialize序列化后的表单数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • jQuery实现文本框邮箱输入自动补全效果

    jQuery实现文本框邮箱输入自动补全效果

    这篇文章主要介绍了jQuery实现文本框邮箱输入自动补全效果,大家无需输入完全部邮箱信息,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • jQuery实现简单的tab标签页效果

    jQuery实现简单的tab标签页效果

    这篇文章主要介绍了jQuery实现简单的tab标签页效果,涉及jQuery简单元素遍历与样式动态操作相关技巧,需要的朋友可以参考下
    2016-09-09
  • jQuery中queue()方法用法实例

    jQuery中queue()方法用法实例

    这篇文章主要介绍了jQuery中queue()方法用法,实例分析了queue()方法的功能、定义及使用技巧,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • jquery 中的each()跳出循环的语句

    jquery 中的each()跳出循环的语句

    很多新手朋友们都不知道jquery 中的each()怎么跳出循环,在each的回调函数中使用return false
    2014-05-05

最新评论