【问题标题】:jquery detect change in dom outsite jqueryjquery 检测 dom outsite jquery 的变化
【发布时间】:2009-04-08 16:47:38
【问题描述】:
是否可以使用 jQuery(或任何其他 JavaScript 函数)来检测 onmouseover 事件何时被触发?
我有一个页面,现有的 JavaScript 调用 onmouseover/out 事件来重写 div 的内容。我实际上只对鼠标悬停在 div 上时获取的内容感兴趣。 onmouseover 事件是由我无法更改的程序在服务器端生成的:(。
关于如何完成此任务的任何建议?
【问题讨论】:
标签:
javascript
jquery
dom
【解决方案1】:
$("#idOfYourControl").hover(function() { /*mouseover event*/ }, function() { /*mouseout event*/ });
【解决方案2】:
这里有一个更具体的例子:
$("#idOfYourControl").hover(
function() { $('#divToShowText').text($(this).text()) },
function() { $('#divToShowText').text("") }
);
【解决方案4】:
根据服务器写入原始鼠标悬停处理程序的方式,您可以使用简单的覆盖来添加您自己的钩子,然后您可以使用该钩子来检测被触发的旧钩子:
var oldHandler = yourElement.onmouseover;
yourElement.onmouseover = function() {
//Do whatever new code you want here...
$j.trigger('oldHandlerCalled');
oldhandler();
}
这是一个快速而肮脏的例子,但你明白了。不保证这不会在 IE6 中泄漏内存 ;)
如果服务器通过 jQuery 附加事件,您可以查看 yourElement.data.events 并以比这更整洁的方式执行。