我们做电子商务,javascript框架采用的是jquery,在开发过程中遇到了上面标题列出的问题:如何监听p内容的变化。
先给出最终代码(后续进行相关分析):
. 代码如下:
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());
});
. 代码如下:
$('#laneconfigdisplay').bind('contentchanged', function() {
// do something after the p content has changed
alert('woo');
});
// 这样会调用上面的函数
$('#laneconfigdisplay').trigger('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());
});
如对本文有疑问, 点击进行留言回复!!
同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
【JavaScript笔记(一)】万丈高楼平地起 - 基本概念篇
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
网友评论