1

そのため、ユーザーがボタンを押したときにソート可能なプラグインの動作を切り替えられるようにしたいという問題があります。IEには、並べ替えモードと表示モードがあります。私はこのようなことをしようとしました:

function enterEdit(){
    $('#someDiv').sortable();
} 

function enterView() {
    $('#someDiv').sortable('destroy');
}

$('#editToggle').on('click', '.toggle-button', function(e){
        var $target = $(e.target);
        if(!$target.hasClass('active')) {
            if($target[0].id == 'edit'){
                enterEdit();                    
            } else {
                enterView();
            }
            $('#editToggle').children().removeClass('active');
            $target.addClass('active');
        }
    });

これが起こっていることです。最初に初期化したときに機能し、次にデストリーも機能します。問題は、もう一度[編集]をクリックしても、ソート可能ファイルが再初期化されないことです。誰かがこれまでにこれを試したことがありますか、またはより良い解決策がありますか?ありがとう!

4

2 に答える 2

2

ソート可能である必要がある各要素に特定のクラスを指定してから、で初期化する場合$('#someDiv').sortable({items: li.yourClass});

次に、クリックするだけでこのクラスを追加および削除でき、要素は除外されるか、再び含まれます。

于 2012-04-18T17:42:50.380 に答える
0

あなたは正しい考えを持っていますが、なぜ「アクティブ」と「ID」の二重チェックがあるのか​​、少し混乱しています。また、すべてのe.targetのものの代わりに、$(this)を使用する必要があります。

とにかく、このフィドルをチェックしてください。それはあなたがしていたことのためにコードをクリーンアップし、私はそれがあなたが望むことをするだろうと思います。

于 2012-04-18T17:51:24.053 に答える