سؤال

أريد أن أترك المستخدم يختار متى يتم الاحتفاظ بمفتاح التحول.

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

رقم؟

هل كانت مفيدة؟

المحلول

يمكنك تقصير الكود الخاص بك ليكون أبسط بكثير باستخدام .shiftKey منشأه في الحدث مباشرة (إنه موجود في mousedown الحدث أيضًا) ، مثل هذا:

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

يمكنك اختباره هنا.

نصائح أخرى

بالنسبة لأولئك الذين يحتاجون إليها أو شيء مشابه ، كان هذا يعمل بشكل جيد بالنسبة لي:

    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();
$(window).keydown(function(e){
  if(!e.shiftKey){
     $("#div").selectable({
        start: function(st) {
        st.stopPropagation();
          //your code here
        });

     }
});

إذا لم يعمل ذلك ، فحاول استخدام المستند بدلاً من النافذة أو "الجسم"

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top