簡體   English   中英

jQuery單擊不適用於IE11中動態添加的href

[英]jquery click not working on dynamically added hrefs in IE11

您好,我的HTML代碼中有一些鏈接。 我想在懸停時更改每個鏈接的href屬性,然后單擊此鏈接,然后在新選項卡中將其打開。 代碼如下:

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

一切在Chrome / Firefox中都可以正常運行,但是,單擊IE 11中的鏈接后,它只會掛起,然后單擊將不起作用。

任何幫助表示贊賞。

您需要綁定到將在以下位置創建動態元素的靜態或預先存在的元素:

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

編輯:這是它的一個小提琴 ,當使用事件的字符串名稱時,我還必須使用“ mouseenter”而不是“ hover”。 jQuery .hover()文檔

在小提琴中,我向您展示了兩個動態添加的div:

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

除此之外,我設置了事件處理程序,對於hover1 div,我使用指定的選擇器在文檔上設置了事件:

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

當您將鼠標懸停在右側的“ hover1”文本上時,您可以看到此方法有效;相反,使用此綁定,您可以看到hover2不起作用:

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

是有關事件委托的jquery文檔的鏈接。

Edit2:我更新了小提琴以解決“ href”操作。 看來您只想更改懸停部分的某些屬性:

我修改了'mouseenter'綁定,使其看起來像這樣:

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

我認為您不需要“關閉”或“點擊”,但這是基於某些假設的,因此請隨時發表評論,我會相應地進行更新。 但是,這將在鼠標輸入動態元素時更改href並同時更改target屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM