3

ホバー上にフェードオーバーレイdivがあり、その中にテキストリンクが表示されている画像があります。

リンクをクリックすると、コンテンツを含むシャドウボックスが開きます。オーバーレイdiv全体をクリック可能にしたいので、以下を使用しました。

$("div.overlay").each(function(){                
         $(this).click(function(){
             $('a#overlink').trigger('click'); // id of shadowbox link

             return false;

             });


       });

FF、Safari、Chromeでは正常に動作しますが、IEでは「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが表示されます。

これを行う別の方法または使用する別の方法はありますか?

4

5 に答える 5

2

どのバージョンのieを使用していますか?IEの一部のバージョンは、リンクまたはボタン以外のオブジェクトのクリックをサポートしていないことを覚えています:(

回避策として、マウスダウンイベントを試してみてください

于 2011-06-27T14:12:51.703 に答える
1

このアプローチはお勧めしません。アンカー(リンク)のクリックイベントを処理する関数を呼び出せないのはなぜですか?または、リンクから場所を使用してナビゲートします。それはもっと理にかなっているでしょう。

于 2011-06-27T14:16:21.710 に答える
0
$("div.overlay").each(function(i,n){                
         $(n).click(function(e){
             //do not need "a" in front of it as #overlink is unique anyways
             $('#overlink').trigger('click'); // id of shadowbox link

             return false;

             });


       });

これを試して、トリガーの上にある私のコメントに注意してください

于 2011-06-27T14:12:13.653 に答える
0

やってみました:

 $('a#overlink').click();
于 2011-06-27T14:13:01.097 に答える
0

これを試して:

$("div.overlay").each(function(){                
  $(this).click(function(){
      var $elm = $('a#overlink');
      if (document.createEvent) {
        var e = document.createEvent('MouseEvents');
        e.initEvent( 'click', true, true );
        $elm.get(0).dispatchEvent(e);
      }
      else {
        $elm.trigger("click");
      }
     return false;
  });
});
于 2011-06-27T14:32:12.753 に答える