我有我的李,它可以选择编辑名称。但每次我动态添加新元素时,我都无法更改名称。更改名称的操作不是火。
以这种方式拥有我的代码。我阅读了关于event delegation的jquery文档。我认为这是解决这个问题的最佳方法,但我以错误的方式实现它。不知道怎么回事?
这是我所拥有的演示:http://jsfiddle.net/DiegoTc/vK588/10/
<li id="cZero" class="active">
<a href="#tab_preview" data-toggle="pill">
<span class="display edit_text">Preview Card</span>
<input type="text" class="edit" style="display:none"/>
</a>
</li>
$(".edit_text").on('dblclick', function(event){
event.preventDefault(event);
$(this).hide().siblings(".edit").show().val($(this).text()).focus();
});
$(".edit").focusout(function(){
$(this).hide().siblings(".display").show().text($(this).val());
});
答案 0 :(得分:1)
您误解了如何使用on()
进行委派。代码运行时,第一个选择器(on()
之前)必须存在。您使用另一个参数传入目标选择器。
尝试
$(document).on('dblclick','.edit_text',function(event){
event.preventDefault(event);
$(this).hide().siblings(".edit").show().val($(this).text()).focus();
});
更详细地阅读文档,因为on()