0

クリックしたときに要素を選択できる機能があります。こんなふうになります:

$('ul.grid li').click(function() {
    var input = $(this).find('input.select-state:first');
    var value = input.attr('value');
    if (value == '0') {
        $(this).addClass('active');
        input.attr('value', '1');
    } else {
        $(this).removeClass('active');
        input.attr('value', '0');
    }
});

これに jQuery sortable を追加すると、この関数が実行されるため、ドロップするとすぐにドロップされる要素が選択されます。この問題を解決するためのアプローチは何ですか?

ありがとう!

4

2 に答える 2

0

jQuery Sortableを使用したことはありませんが、sortableを.stopImmediatePropagation()呼び出す関数への呼び出しを追加できますか?

于 2009-11-18T08:29:28.363 に答える
0

次のように、ドラッグの開始時に要素にフラグを設定できます。

$(document).ready(function(){
    $('ul.grid').sortable({
        start: function(event, ui){
            ui.item.data('dragged', true);
        }
    });
});

次に、次のように、クリック関数でそのフラグを確認して反転します。

$('ul.grid li').click(function() {
    if($(this).data('dragged')){
        $(this).data('dragged', false);
    } else {
        var input = $(this).find('input.select-state:first');
        var value = input.attr('value');
        if (value == '0') {
            $(this).addClass('active');
            input.attr('value', '1');
        } else {
            $(this).removeClass('active');
            input.attr('value', '0');
        }
    }
});
于 2009-11-20T18:24:29.133 に答える