如果对象字段内有任何更改,我该如何提醒用户
我正试图检测对象内部div的变化
如果这是正常的,代码就是这样:
<div id="HeaderNewMessageIcon" class="BrosixContactNewMessage" style="display:none;">
<a href="javascript:;" class="HeaderNewMessageIcon" title="Unread messages"></a>
</div>
但如果有变化,它将如下所示:
<div id="HeaderNewMessageIcon" class="BrosixContactNewMessage" style="display: block; ">
<a href="javascript:;" class="HeaderNewMessageIcon" title="Unread messages: 1"></a>
</div>
我想通过提醒或使用图像来提醒用户对象内部是否有变化。
我有什么方法可以实现这个目标吗?
另一件事,我无法访问对象内部的代码,我只能查看它而不能编辑它。
答案 0 :(得分:0)
我相信必须有一些JavaScript代码可以更改你的html,你可以从那里调用你的方法。其他方法可以使用setInterval。
您可以使用jQuery插件Mutation Events plugin for jQuery。见thread
var a = document.getElementsByClassName('HeaderNewMessageIcon')[0];
var oldTitle = a.title;
setInterval(function(){
if(a.title !== oldTitle){
alert("Title change");
oldTitle = a.title;
}
},100);
答案 1 :(得分:0)
您必须在通过用户交互时检测更改,例如click,mouseover,mousedown等...然后您可以附加一个函数,以查看其属性或其中的任何内容是否发生变化。
//detect inputs change
$('#HeaderNewMessageIcon').find(':input').change(function(){ alert(...)});
//detect attributes change
$('#HeaderNewMessageIcon').click(function(){
detectChange(this);
});
对于detectChange工作,您必须在刚加载页面时保存属性
var attrs = $('#HeaderNewMessageIcon').get(0).attributes;
function detectChange(obj){
//pseudo-code, you need to find a function on the web to commpare 2 objetcs
if (obj.attributes === attrs){
alert(...);
}
//the same comparison for the children elements $(obj).children()
}