我删除附加代码时遇到问题 尝试添加一些div并检查结果 当您尝试dbclicked on new div时,他不会被删除。
HTML:
<input id="val" name="value" />
<input id="submit" type="button" value="ok" />
<div id="content"></div>
脚本:
$("div[id^='block_']").on('dblclick', function() {
$(this).remove();
});
$("#submit").click(function(){
if ( $('#val').val().length > 0 )
{
$('#content').append('<div id="block_'+ $('#val').val() +'">'+ $('#val').val() +'</div>');
$('#val').val('');
}
});
这是JSFiddle
我使用jquery 2.0.3。
答案 0 :(得分:1)
绑定click事件时,您的元素不存在。使用委托活动:
$('#content').on('dblclick', "div[id^='block_']", function() {
$(this).remove();
});
此处提供您需要的所有信息:http://api.jquery.com/on/#direct-and-delegated-events
答案 1 :(得分:1)
由于您的div是动态生成的,因此请使用.on()
的事件委派:
$(document.body).on('dblclick',"div[id^='block_']", function() {
$(this).remove();
});
答案 2 :(得分:0)
为什么你的代码中有这个部分?
$("div[id^='block_']").on('dblclick', function() {
$(this).remove();
});
如果您这样做是因为您想要选择div标签的ID作为选择器,则不必这样做。
例如,如果要删除,则执行此操作:
$("#content").on('dblclick', function() {
$(this).remove();
});
答案 3 :(得分:0)
另一种方法是创建div并在将事件附加到dom之前分配事件
var div = $('<div id="block_'+ $('#val').val() +'">'+ $('#val').val() +'</div>');
div.on('dblclick',function(){$(this).remove();});
$('#content').append(div);