0

インプレースエディタを問題なくセットアップでき、すべてがうまく機能しますが、フィールドにアタッチされた後、それを削除する方法が見つかりませんでした。

私はここでこのプラグインについて話している:http ://www.davehauenstein.com/code/jquery-edit-in-place/

4

1 に答える 1

2

インプレースエディターを無効にしたいということだと思います。

私はこのプラグインを使用したことはありませんが、あなたが求めている動作が実装されていると思わせるコード サンプルがサイトにありません。

そうでない場合は、古き良き div キャッシュ トリックを使用できます。

$.fn.disableWithADiv() {
    var element = $(this);
    var pos = element.offset();
    $("body").append($("<div />").css({
        "position": "absolute",
        "z-index": 1000,
        "left": pos.left+"px",
        "top": pos.top+"px",
        "width": element.width(),
        "height": element.height(),
        "display": "block"
    }).attr("id",element.attr("id")+"-div-disabler"));
}

$.fn.removeDivDisabler() {
    var element = $(this);
    $("#"+element.attr("id")+"-div-disabler").remove();
}

次に使用します

$("#yourElement").disableWithADiv();   // To disable
$("#yourElement").removeDivDisabler(); // To re-enable

すべてが計画どおりに進むと、要素の代わりに div がクリック イベントをキャッチし、インプレース エディターが開かれることはありません。

それは私の頭のてっぺんからのもので、そこにタイプミスや重大な論理的欠陥がないかどうかはわかりません;)

編集:

さて、問題があります... 2 つの関数の本体は、次の構造にカプセル化する必要があります。

return this.each(function() {
    // Body here
});

愚かな私。

于 2009-03-15T04:01:20.907 に答える