我正在使用jQuery创建一个id为"取消"的html按钮。在我的实际页面上,单击我的#edit按钮将成功创建我的取消按钮。但是我无法在将来的jQuery操作中使用此取消按钮。有解决方案吗?
$(document).ready(function() {
$("#edit").click(function() {
$("#button").html("<input id='cancel' type='button' value='cancel' />");
});
// Here I want to access my new button
$("#cancel").click(function() {
('p').hide();
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id='button'><input id='edit' type='button' value=edit /></span>
<p>Hide me upon cancel</p>
&#13;
答案 0 :(得分:3)
是。的 event delegation 强>
事件委托允许我们将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有后代触发,无论这些后代现在是存在还是将来添加。
在定位p元素时,您也缺少jquery选择器。
$("#button").on('click','#cancel',function() {
$('p').hide();
});