4

如何将以下内容与 jQuery 中的委托相结合?

我有一个#commentContainer围绕所有可编辑元素,并且我正在动态添加可编辑字段(Jeditable)。编辑功能不适用于动态加载的项目。

     /* Bind Jeditable instances to "edit" event. */
    $(".edit").editable('/Comment/PostComment/', {
        type: 'textarea',
        cancel: 'Cancel',
        submit: 'OK',
        indicator: '<img src="img/indicator.gif">',
        tooltip: 'Click to edit...',
        event: "edit"
    });
    /* Find and trigger "edit" event on correct Jeditable instance. */
    $(".edit_trigger").bind("click", function () {
        $(this).prev().trigger("edit");
    });
4

2 回答 2

2

有一个解决方案可以为动态添加的字段添加 jQuery.editable。

$("body").on("click",".editable",function(e){

  // Add editable plugin
  // but! for `focus` instead common `clik` event

  $(this).editable('go.to',
    {
      event : 'focus.editable',
      ..
      ..

     // Then trigger focus event

   }).trigger("focus");
 })
于 2012-10-11T14:49:09.717 回答
2

将元素添加到 DOM 时,事件委托不适用于运行代码。一些浏览器事件需要首先发生,比如点击。

因此,如果您要添加应该让editable插件针对它们运行的​​新元素,则需要在添加它们时手动调用它。

$('<textarea>').editable( /* settings */ )
               .appendTo( '#commentContainer' );
于 2011-01-16T23:02:24.087 回答