在我清除后点击不工作,并使用jquery将html附加到div中。 这是html代码
<div id="divMain">
</div>
<input id="btn" type="button" value="Clear&Add"/>
这是jQuery代码
var a = $('<a/>').attr({'id':'aH','href':'#'}).text('Hello');
a.click(function(){
alert('hello');
});
$('#divMain').append(a);
$('#btn').click(function(){
var newA = $('#aH');
$('#divMain').html('');
$('#divMain').append(newA);
});
这是jsfiddle
简单点击小提琴中的提醒链接,它会显示提醒。现在点击Clear&Add
按钮。现在点击提醒。它不起作用。
答案 0 :(得分:6)
您需要事件委派才能使用动态添加的元素绑定事件。您还需要创建标识为aH
的elemet,因为您已从DOM
中删除该元素而未保留该元素。
<强> Live Demo 强>
$(document).on('click', '#aH', function(){
alert('hello');
});
您可以尝试添加全局创建的a
,而无需再次绑定点击。
$('#divMain').append(a);
委派事件的优势在于它们可以处理来自的事件 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免经常附加和删除事件处理程序,jQuery api
答案 1 :(得分:0)
您需要使用事件委派:
$('#divMain').on('click', a, function(){
alert('hello');
});
答案 2 :(得分:0)
Click不适用于jQuery中动态创建的元素。在早期版本的jQuery中,我们可以使用在最近版本中已弃用的.live('click')。现在你可以使用.on更好地为动态元素工作,正如Adil所说。