[英]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.