1

我的页面上有一些第三方 iframe,mousesover只有当这些 iframe 的 src 在 src 文本中的任何位置包含 twitter 或 facebook 时,我才想在用户捕获它们。由于我无法捕获点击(我可以使用他们的自定义方法,我想保持代码完全独立)。我想捕捉用户何时将鼠标移入 iframe(位于我的页面上,不是由他们引入的)。iframe 的“SRC”在我的站点之外,但实际调用在我的页面中。有任何想法吗?

翼:

var _self = this;
$("iframe src").filter('/facebook|twitter/')
    .mouseover(function(event){
    event.stopPropagation();
    _self.somemethodcall();
});

或类似的东西:

var _self = this;
$('iframe').filter(function() {
    return $(this).attr('src').match(/facebook|twitter/);
}).bind("mouseover", function(event) {
    event.stopPropagation();
    _self.somemethodcall();
});
4

1 回答 1

1

它看起来像这样:

var a = /facebook|twitter/;

$('iframe').live('mouseover', 
  function () {
      if(a.test($(this).attr('src'))){
             alert('Found it!');
      }
  }  
);​

首先,我们将正则表达式放入名为a. 然后在悬停 iframe 时,我们测试正src则表达式的 ,如果 的值包含或iframe,它将返回 true 。srcfacebooktwitter

一个工作示例: http: //jsfiddle.net/2PZ2c/ (第三个是带有 google.com 源的那个)

可读性:

http://api.jquery.com/hover/

http://www.w3schools.com/jsref/jsref_regexp_test.asp

边注:

此解决方案也适用于其他处理程序,如mouseenter,mouseleave等。

编辑

我已经编辑了我的代码以使用 .live() 函数。此函数会将事件处理程序附加到两个当前元素作为未来元素。

示例:http: //jsfiddle.net/2PZ2c/1/

来源:http ://api.jquery.com/live/

于 2012-06-10T01:27:45.230 回答