4

jquery ui の選択可能なウィジェットで、Ctrl キーを押しながら (またはボックスをドラッグして) 複数の項目を選択できることに気付きましたが、複数選択を無効にするにはどうすればよいですか。一度に1つだけ選択できるようにしたい。

ありがとう。

4

3 に答える 3

7

これはかなり大雑把な実装です: http://jsfiddle.net/rtRjK/

基本的に、要素が選択されると、最初に選択されているすべての兄弟の選択が解除されます。これにより、ctrl クリックが処理されます。次に、選択している兄弟を繰り返し処理し、選択を解除します。これにより、ドラッグが処理されます。結果として、ドラッグは常に最大の y 座標を持つ要素を取ります。

独自の選択可能なウィジェットをロールすることもできます。ctrl キーの参照と_mouseDrag機能を次から削除しました$.ui.selectable: http://jsfiddle.net/zFFXc/

于 2012-10-26T19:05:33.960 に答える
0
$("#myList li").click(function() {
  $(this).addClass("selected").siblings().removeClass("selected");
});
于 2012-11-04T10:58:27.843 に答える
0

選択可能, 単一選択, キーボード付き

//after load
$(function() {

    // make <ol id=lista> selectable (jquery UI)
    $("#lista").selectable();
    $("#lista").children(":first-child").addClass("selected"); //select first

    $(document).keydown(function(ev) { //con keyboard

        var actual = $(".selected");
        switch (ev.keyCode) {

            case 13: // User pressed "enter" key
                actual.dblclick();
                ev.preventDefault();
                break;

            case 38: // User pressed "up" arrow
                actual.prev().click();
                ev.preventDefault();
                break;

            case 40: // User pressed "down" arrow
                actual.next().click();
                ev.preventDefault();
                break;
        }
    }); //end keydown

    //single select
    $("#lista li").click(function() {
        $(this).addClass("selected").siblings().removeClass("selected");
    });

}); // end $(fn...
于 2013-06-24T06:01:33.560 に答える