2

<li>ユーザーがリスト内で再配置できるように、jQuery sortable を使用してい<ul>ます。HTMLのみが含まれています

<ul id="uisortable"></ul>

そしてJavaScriptにはこれが含まれています:

$(function() {
    $('#uisortable').sortable();
    $("#uisortable").disableSelection();
});

アイテムはJSから動的に追加され、アイテムを追加した後、私は呼び出しています

$('#uisortable').sortable("refresh");

FF、Opera、および Webkit ではすべてが完全に正常に動作しますが、IE ではまったく動作しません。IE 9 でさえ、どのバージョンでも動作します。次のようにオプションを追加してみましactivateた。sortable

$('#uisortable').sortable({
    activate: function() {
        throw("Start sorting");
    }
});

IE 9 スクリプト デバッガーで、行にブレークポイントを設定しましたthrow("Start sorting")が、その行がアクティブになりません。IE では、ソート可能なものが単にリストにアタッチされていないようです。

jquery UI 1.8.13でjquery 1.4.2を使用しています。

興味深いことに、jquery ui のソート可能なデモ ページは正常に動作するため、私のコードで何かを行う必要がありますが、さらにどれだけ単純化できますか? わかりました、できます-そうしました。アイテムを動的に作成する代わりに、HTML で (テスト用に) 静的に作成しました。<li>テキストの 1 行を除いてすべて削除しました。これで、HTML は次のようになります。

<ul id="uisortable">
    <li class="sortitem">Item 1</li>
    <li class="sortitem">Item 2</li>
    <li class="sortitem">Item 3</li>
</ul>

上記のJavaScriptコードで。それでも、IEでは機能しません。また、エラー コンソールにいかなる種類のエラーも表示されません。ただし、FF、Webkit、Opera では問題ありません。私は今、完全に困惑しています。どんな助けでも大歓迎です。

4

2 に答える 2

3

どうやら、問題は jquery.ui のバージョンに関連していたようです。1.8.13 から 1.8.20 にアップグレードしました (jquery を 1.4.2 から 1.7.2 にアップグレードするよりもはるかに簡単です)。

于 2012-05-18T13:56:45.773 に答える
0

この JSFiddleを見て ください。

JQuery 1.4.4 を使用した IE9 で問題なく動作します。しかし、JQuery 1.3.2 (JSFiddle で入手可能な次の下位バージョン) にドロップすると、機能しなくなります。

JSFiddleで「リソースを追加」して、使用している正確なバージョンを取得できますが、JQuery 1.4.4以降(適切なバージョンのJQueryUIを使用)を使用すると修正されると思います。

于 2012-05-18T13:49:24.077 に答える