1

私のページにサードパーティのiframeがいくつかありmousesover、それらのiframeのsrcにsrcテキストのどこかにtwitterまたはfacebookが含まれている場合にのみ、それらをユーザーがキャプチャしたいと思います。クリックをキャプチャできないため(カスタムメソッドを使用してキャプチャできるため、コードを完全に分離したい)。ユーザーがiframeにマウスを合わせたとき(私のページにある、ユーザーがマウスを持ってこないとき)をキャプチャしたいと思います。iframeの「SRC」は私のサイトの外にありますが、実際の呼び出しは私のページにあります。何か案は?

ala:

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を正規表現にテストします。 の値にまたは のいずれかがsrc含まれている場合、true が返されます。facebooktwitter

実際の例: http://jsfiddle.net/2PZ2c/ (3 つ目は 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 に答える