14

クリックしたときに選択した要素の選択を解除するようにjqueryuiの選択可能な要素を構成する方法があるかどうか誰かが知っていますか?トグルのようなものです。すでに選択されている場合は選択を解除し、選択されていない場合はデフォルトの動作を実行します。

ありがとう。

4

4 に答える 4

41

私はあなたの質問に答えるのが非常に遅いですが、他の人の参考にするためにとにかく答えさせてください。

$( ".selector" ).bind( "mousedown", function ( e ) {
    e.metaKey = true;
} ).selectable();

これにより、探しているトグル動作が可能になります。

于 2012-09-25T22:28:59.567 に答える
11

さて、これが私がやったばかりのことです。クラス名を使用して、選択と選択解除を切り替えました。別のオプションがあるかどうか聞いてみたいです:

$("#selectable").selectable({
    selected: function (event, ui) {
        if ($(ui.selected).hasClass('selectedfilter')) {
            $(ui.selected).removeClass('selectedfilter');
            // do unselected stuff
        } else {            
            $(ui.selected).addClass('selectedfilter');
            // do selected stuff
        }
    },
    unselected: function (event, ui) {
        $(ui.unselected).removeClass('selectedfilter');
    }
});
于 2010-10-15T22:40:28.730 に答える
2

既存の選択を保持し、トグル操作を実行したい場合は、指定されたソリューションの選択されていないイベントを無視する必要があります。また、uiで選択されたクラスを削除する必要があります。

$("#selectable").selectable({
selected: function (event, ui) {
    if ($(ui.selected).hasClass('selectedfilter')) {
        $(ui.selected).removeClass('selectedfilter').removeClass('ui-selected');
        // do unselected stuff
    } else {            
        $(ui.selected).addClass('selectedfilter').addClass('ui-selected');
        // do selected stuff
    }
}
});
于 2011-09-23T15:12:03.603 に答える
0

これはどういう意味ですか?

このイベントは、選択操作の最後に、選択から削除された各要素でトリガーされます。

コード例

選択されていないイベントをinitオプションとして処理するためのコールバック関数を提供します。

$( ".selector" ).selectable({
   unselected: function(event, ui) { ... }
});
Bind to the unselected event by type: selectableunselected.
$( ".selector" ).bind( "selectableunselected", function(event, ui) {
  ...
});

ソース:

http://jqueryui.com/demos/selectable/#event-unselected

于 2010-10-15T22:04:22.747 に答える