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 不支持单击链接或按钮以外的对象:(

也许尝试使用 mousedown 事件作为解决方法

于 2011-06-27T14:12:51.703 回答
1

我不会推荐这种方法。为什么不能调用处理锚点(链接)点击事件的函数?或使用链接中的位置导航。那会更有意义。

于 2011-06-27T14:16:21.710 回答
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 回答
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 回答