Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-trigger(';click';)不在IE中工作-对象不支持此属性或方法_Jquery_Html_Click_Shadowbox - Fatal编程技术网

jQuery-trigger(';click';)不在IE中工作-对象不支持此属性或方法

jQuery-trigger(';click';)不在IE中工作-对象不支持此属性或方法,jquery,html,click,shadowbox,Jquery,Html,Click,Shadowbox,我有一个图像,悬停时显示一个文本链接 单击链接时,会打开一个包含内容的阴影框。我希望整个覆盖div可以单击,因此我使用: $("div.overlay").each(function(){ $(this).click(function(){ $('a#overlink').trigger('click'); // id of shadowbox link return false;

我有一个图像,悬停时显示一个文本链接

单击链接时,会打开一个包含内容的阴影框。我希望整个覆盖div可以单击,因此我使用:

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

             return false;

             });


       });
它在FF、Safari和Chrome中运行良好,但IE显示“对象不支持此属性或方法”错误

有没有其他方法来做这件事或使用其他方法

$("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;

             });


       });

试试这个,在你的触发器上方记下我的评论

你正在使用哪个版本的ie? 我记得某些版本的IE不支持单击链接或按钮以外的对象:(

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

您是否尝试过:

 $('a#overlink').click();

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

试试以下方法:

$("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;
  });
});

我建议您提醒每个循环中的一些项目,查看它们在FF中返回的内容,然后检查IE。这将帮助您确定出现的不同之处,从那里您可以更好地评估错误的位置。正如@Val所述,不要忘记#overlink是唯一的,如果您有多个具有相同id的a,则这是不正确的,在这种情况下,您必须声明它的范围,例如:$('a#overlink',this)这似乎已经修复了它,我使用的是IE tester和一台安装了ie7的旧电脑。阴影盒在电脑上启动,但不是IE tester。不再显示错误。非常感谢。感谢您的建议,我将在有这些类型id的地方更改代码。