jquery点击不在IE11中动态添加的hrefs

时间:2015-04-27 11:56:02

标签: javascript jquery html hyperlink

您好我的HTML代码中有一些链接。我想在悬停时更改每个链接的href属性,然后单击此链接我想在新选项卡中打开它。代码如下:

main activity

Chrome / Firefox中的所有内容都正常运行,但是,单击IE 11中的链接时,它只会挂起并单击无法正常工作。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您需要绑定到将在以下内容中创建动态元素的静态或预先存在的元素:

$(document).on('mouseenter','.identifierClass',function(e) {
if(condition) // is true
{
    $(element).attr("href", "url/goes/here").attr("target", "_blank");
 }
});

编辑:这是fiddle,我还必须使用' mouseenter'而不是' hover'使用事件的字符串名称时。 jquery .hover() documentation

在小提琴中,我展示了两个动态添加的div:

$('#place').html('<div class="identifierClass">hover1</div><div class="identifierClass2">hover2</div>');

在上面,我设置了我的事件处理程序,对于hover1 div,我使用指定的选择器在文档上设置事件:

$(document).on('mouseenter','.identifierClass',function(e) {
alert('hi');
});

当您将鼠标悬停在&lt; hover1&#39;上时,您可以看到此功能。右边的文字,相反,你可以看到hover2使用这个绑定不起作用:

$('.identifierClass2').hover(function(e) {
alert('hi2');
});

here是有关事件委派的jquery文档的链接。

Edit2:我更新了fiddle以解决&#39; href&#39;操纵。您似乎只想更改悬停部分的某些属性:

我修改了鼠标中心&#39;绑定看起来像这样:

$(document).on('mouseenter','.identifierClass',function(e) {
    alert('hi');    $('#someLink').attr('href','http://www.bing.com').attr('target','_blank');
});

我认为你不需要关闭&#39;关闭&#39;或点击&#39;,但这是基于一些假设,所以请随意评论,我可以相应更新。但是,当鼠标移动动态元素并更改目标属性时,这将改变href。