0

jQuery UI のサイズ変更可能な機能をロード後に追加しようとしている要素のリストがあり、クラスui-resizableを取得していますが、クラスui-resizable-handleを持つ div は追加されていません。

最初に始めます (そして、あなたが尋ねる前に、はい、例では必要のないコードをいくつか剥がしました)...

function setElementsAsResizable(elements, isResizable) {
    elements.each(function () {
        var element = $(this);
        if (element.is(':data(ui-resizable)'))
            element.resizable("destroy");
        if (isResizable)
            element.addClass("resizable");
        }
        else {
            if (element.hasClass("resizable"))
                element.removeClass("resizable");
        }
    });
}

これは、要素のサイズを変更できなくなった場合に備えて、白紙の状態から始めるためです。この後、要素を作成します。

function createResizableElements(row) {
    var element = row.children(".element.resizable");
    element.resizable({
        handles: 'e',
        containment: 'parent',
        create: function (event, ui) {
            $(this).parent().on('resize', function (e) {
                e.stopPropagation();
            });
        },
        start: function (event, ui) {...},
        resize: function (event, ui) {...},
        stop: function (event, ui) {...}
    });

したがって、すべての要素にui-resizableが付与されましたが、すべてが div ui-resizable-handleを受け取っていないため、すべてが使用できなくなります。要素も並べ替え可能で (機能します)、ドラッグ アンド ドロップすると同じプロセスを経ますが、現在はui-resizable-handleが与えられています。

つまり、要素を ui-resizable として設定する方法を知っている人はいますが、実際にサイズ変更するために必要なハンドルを取得することはできませんか?

4

1 に答える 1

1

まあ、これは恥ずかしいです。どうやら、これは jQueryUI のバグと、ここにある修正方法に関する回答によるものです。

サイズ変更可能な子を破棄せずにサイズ変更可能なjqueryを破棄するにはどうすればよいですか?

簡単な要約: 要素で destroy を呼び出すと、その要素の jQueryUI の動作が削除され、その要素のすべての子のハンドルが削除されます。

jQueryUI でコーディングしているときに検索しにくいライブラリのバグを見つけるのをやめなければなりません。

于 2015-02-13T15:12:55.160 に答える