2012-10-26 33 views

回答

7

這是一個相當粗的實現:http://jsfiddle.net/rtRjK/

基本上,當選擇的元素,第一非選擇已選擇的所有它的兄弟姐妹 - 這個處理CTRL-點擊。接下來,迭代選擇和取消選擇它們的兄弟 - 這處理拖拽。因此,拖動總是需要具有最大y座標的元素。

您還可以滾動您自己的可選小部件。我從$.ui.selectable刪除ctrl鍵參考,並_mouseDrag功能:http://jsfiddle.net/zFFXc/

+0

的singleselectable插件是一大堆清潔。根據「您也可以......」的部分提出了這個答案,因爲我讀過的所有其他答案都是hacky,而不是乾淨而專業的用戶界面。乾杯 –

0
$("#myList li").click(function() { 
    $(this).addClass("selected").siblings().removeClass("selected"); 
}); 
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...