2016-01-27 153 views
2

我有一些動態生成的內容,其中包含ajax調用成功的一些鏈接。鏈接是這樣生成的。單擊JQ事件處理程序

$('#mySomething').append('<a href = "' + url + '" target = "_blank" class = "myclickclass">' + Name + '</a>'); 

我試圖

$('a.myclickclass').click(), 
$('.myclickclass').click(), 
$('.myclickclass').on('click', 'a', function({})), 

甚至

$(document).on('click', '.myclickclass a', function (e) {}); 

,但似乎沒有發生。新標籤打開,但事件被忽略。

+1

您必須在插入新節點後重新綁定事件。 –

+0

嘗試像這樣,$('#mySomething a.myclickclass')。click();如果你確定錨標籤正在附加。 – Sravan

+0

委託方式(您的最後一個片段)可以工作,但您的選擇器是錯誤的。你應該匹配'a.myclickclass'而不是'.myclickclass a'。 –

回答

3

使用$(".myclickclass")[0].click()

您可以將事件直接連接到這個新的定位。

$('body').append($('<a href = "http://www.google.de" class = "myclickclass">Test</a>') 
 
     .click(function() { 
 
      alert("Hey there"); 
 
     }));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<body></body>

該消息被打印。

1

委派事件必須努力

$(document).on('click', '.myclickclass', function (e) { 

alert("yes") 

}); 
0

var url = 'http://www.google.com'; 
 
var Name = "Link"; 
 
$('#mySomething').append('<a href = "' + url + '" target = "_blank" class = "myclickclass">' + Name + '</a>'); 
 

 
$('a.myclickclass').on('click',function(){ 
 
    console.log('link clicked'); 
 
     
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="mySomething"></div>

像這樣的事情?