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 に答える