为什么我的livequery附加功能会触发页面上的所有内容?

时间:2011-02-16 00:27:08

标签: javascript jquery livequery

我有一个鼠标悬停功能和相反的mouseout功能附加到我页面上的图像,以便在它们悬停时显示更大的版本。这些函数通过livequery附加到图像元素。

问题是看起来我的功能已附加到页面上的每个元素,而不仅仅是我希望它们附加到的图像。如果我将console.log放入函数中,我会在任何时候将鼠标放入或移出页面上的任何元素时打印出来。

为什么livequery会绑定这么多东西?

以下是代码:

Assets.registerPopups = function(selector, context) {
  var targets = jQuery(selector, context);

  targets.livequery("mouseover", function(e) {

    console.log("mouseover e.target", e.target);

  });

  targets.livequery("mouseout", function(e) {
    console.log("mouseout e.target", e.target);
  });    
};


jQuery(function(){ 
  Assets.registerPopups(".photo, .video, .flash, .h264", "#controller.project_assets.index")
});

注意:这是我继承的维护不善的项目,所以我正在处理jQuery 1.2.6和livequery 1.0.2。我正在尝试升级它。

0 个答案:

没有答案