在IE11中模拟鼠标事件的输入操作

时间:2016-02-21 11:04:11

标签: javascript svg internet-explorer-11

我有这个标签:

<a href="#top" id="atag"><img src="somefile.gif" /> </a>

我们需要在焦点上反转锚标记中的img,因此我必须使用svg过滤器和javascript在focusin事件上实现类似的效果:

<a href="#top" class="svgImg" id="atag">
   <svg> 
   <image ... />
   </svg>
</a>

svg filter有效,但由于某些未知原因,img替换为svg后,我无法获得anchor tag的默认行为再点击它。我的意思是当我点击倒置anchor tag时,没有任何反应。甚至想到,当鼠标悬停在anchor tag上时,我仍然可以看到状态栏上显示的href值。

我知道这个问题来自项目中的其他javascripts,但由于它的大小,我无法调试到问题的来源。

所以我来到了一个临时解决方案,我将抓住mouseup事件:

$('a').mouseup(function(e) {
    if ($(this).is('.svgImg') {
        this.click();
    }
});

这可以按照我的预期工作,但后来又出现了另一个问题anchor tag

<a href="#top" class="svgImg" id="atag" onclick="updateProcess(this)">

在&#34;点击&#34;之后,它被叫了两次,我不知道为什么,正如我所提到的,项目是如此巨大,我无法找到问题。

然后我想到了模拟Enter键的想法,因为anchor tags正常运行,如果我们在焦点时按enter

我的问题是,这可以吗?

仅供参考:您可能想问我为什么要经历所有这些麻烦?由于我在项目中的anchor tags不仅仅包含href,因此它们还包含onclick,或者通过某些javascript来处理$('#someid').click(....) @user.avatar 1}}所以.... !!!!

P / s:请忽略如果有任何错误的javascript语法,我输入所有这些内存不足,实际代码正常工作,毫无疑问。

1 个答案:

答案 0 :(得分:0)

你试过jQuery吗?试试这样的smth

$('#atag').keypress(function (e) {
 var key = e.which;
 if(key == 13)  // the enter key code
  {
    //put what is needed
  }
});