1

これはおそらく簡単な修正ですが、頭を悩ませています...

その場で生成されるいくつかの div に jQuery edit-in-place プラグインを使用しています。シンプルなはずです。新しく作成された div をクリックして、コンテンツを編集できるようにします。live() で問題が発生しています。

live() を使用しなくても、明らかに静的 div に対しては正常に機能します。一度クリックすると、編集可能なコンテンツが取得されます。

ただし、live() を使用している間は、内容を編集するためにダブルクリックする必要があります。その後、クリックされると、一度だけかかります。それはちょっと焦点の問題のようなものです。おそらくプラグイン自体を変更すると役立つでしょうか?

これがまさに私が話していることです... http://jsfiddle.net/efflux/62CzU/

これは、ライブで editinplace() 関数を呼び出す方法と関係があります。

$('.editable').live('click',function() {
    //event.preventDefault();
    $('.editable').editInPlace({
        callback: function(unused, enteredText) { return enteredText; },
        bg_over: "#cff",
        field_type: "textarea",
        textarea_rows: "5",
        textarea_cols: "3",
        saving_image: "./images/ajax-loader.gif"
    });  
 });   

js 経由で作成された div で、その場で編集プラグインを正常に機能させるにはどうすればよいですか?

どんな助けでも大歓迎です!!

4

3 に答える 3

2

迅速で汚い修正:http://jsfiddle.net/62CzU/5/

var $this = $(this),
      isInit = $this.data('edit-in-place');
if(!isInit){
    $('.editable').editInPlace({
        callback: function(unused, enteredText) { return enteredText; },
        bg_over: "#cff",
        field_type: "textarea",
        textarea_rows: "5",
        textarea_cols: "3",
        saving_image: "./images/ajax-loader.gif"
    });
    $this.click();
}
于 2011-08-09T05:35:18.323 に答える
2

クリックするまで設定されていないため、動作しません。それをクリックすると、それ自身のクリックを必要とするEditInPlaceを設定します。設定後にもう一度クリックをトリガーするだけです:http://jsfiddle.net/62CzU/6/

于 2011-08-09T05:35:39.220 に答える
1

ライブデモ

ボタンのクリックをこれに変更するだけです。

$("button.btn").click(function() {
    $(".mydiv").prepend('<div class="passage-marker"><div class="annotation editable">it take 2 clicks to edit me, unless I have already been edited</div></div>');

         $('.editable').editInPlace({
            callback: function(unused, enteredText) { return enteredText; },
            bg_over: "#cff",
            field_type: "textarea",
            textarea_rows: "5",
            textarea_cols: "3",
            saving_image: "./images/ajax-loader.gif"
        });  

    });
}

基本的に、作成するたびに再バインドするだけです。問題が発生したlive理由は、最初のクリックでバインドされたため、2 回目のクリックで既にバインドされており、機能するためです。

于 2011-08-09T05:40:16.783 に答える