事件代表团没有处理动态li

时间:2014-07-06 23:33:26

标签: javascript jquery

我有我的李,它可以选择编辑名称。但每次我动态添加新元素时,我都无法更改名称。更改名称的操作不是火。

以这种方式拥有我的代码。我阅读了关于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());
});

1 个答案:

答案 0 :(得分:1)

您误解了如何使用on()进行委派。代码运行时,第一个选择器(on()之前)必须存在。您使用另一个参数传入目标选择器。

尝试

$(document).on('dblclick','.edit_text',function(event){
    event.preventDefault(event);
    $(this).hide().siblings(".edit").show().val($(this).text()).focus();
});

更详细地阅读文档,因为on()

有2个用例