【问题标题】: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("") }
      );
      

      【讨论】:

        【解决方案3】:

        您可以在 jQuery 中使用 mouseover 事件处理程序。

        http://docs.jquery.com/Events/mouseover#fn

        【讨论】:

          【解决方案4】:

          根据服务器写入原始鼠标悬停处理程序的方式,您可以使用简单的覆盖来添加您自己的钩子,然后您可以使用该钩子来检测被触发的旧钩子:

          var oldHandler = yourElement.onmouseover;
          yourElement.onmouseover = function() {
              //Do whatever new code you want here...
              $j.trigger('oldHandlerCalled');
          
              oldhandler();
          }
          

          这是一个快速而肮脏的例子,但你明白了。不保证这不会在 IE6 中泄漏内存 ;)

          如果服务器通过 jQuery 附加事件,您可以查看 yourElement.data.events 并以比这更整洁的方式执行。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-08-16
            • 2011-09-21
            • 1970-01-01
            • 1970-01-01
            • 2021-06-07
            相关资源
            最近更新 更多