回答

1

你可以通過直接在事件上使用.shiftKey property(它也存在於mousedown事件中)縮短您的代碼,使其更簡單得多,如下所示:

$("#div").mousedown(function(e){ 
    if(e.shiftKey) return; 
    e.stopImmediatePropagation(); 
    return false; 
}).selectable(); 

You can test it out here

0
$(window).keydown(function(e){ 
    if(!e.shiftKey){ 
    $("#div").selectable({ 
     start: function(st) { 
     st.stopPropagation(); 
      //your code here 
     }); 

    } 
}); 

如果不行嘗試使用的文檔,而不是窗口或「身體」

+0

shift鍵是「shiftKey」。我所要求的是如何限制用戶只能在換檔鍵被保持時選擇。 – 2010-10-23 05:42:03

+0

查看更新的答案 – Val 2010-10-23 06:10:00

0

對於那些誰需要它或類似的東西,這個工作很適合我:

var shift = false; 

    $(window).keydown(function(e){ 
     if(e.shiftKey){ 
    shift = true; 
     } 
    }) 
    .keyup(function(e){ 
     if(!e.shiftKey){ 
      shift = false; 
     } 
    }); 

    $("#div") 
    .mousedown(function(e){ 
     if(!shift){ 
     e.stopImmediatePropagation(); 
     return false;   
     } 
    }) 
    .selectable();