2012-05-25 16 views
8

खींच रहा है, मैं यह जांचने में सक्षम होना चाहता हूं कि फ़ंक्शन कहलाए जाने पर कोई घटना हो रही है या नहीं। मेरे पास एक फ़ंक्शन कहा जा रहा है जब मेरी कस्टम स्क्रॉल बार को .draggable() ऊपर और नीचे उपयोग करके खींचा जा रहा है और मेरे कंटेनर स्क्रॉल होने पर भी एक फ़ंक्शन कॉल किया जा रहा है। समस्या यह है कि दोनों एक ही समय में चलते हैं जो इसे छोटी गाड़ी बनाता है।यह जांचने के लिए कि क्या तत्व वर्तमान में

तो मेरा सवाल यह है कि मैं "if" कथन कैसे जांचूं कि स्क्रॉल बार को वर्तमान में खींचा जा रहा है या नहीं, इसलिए मैं इसे शेष फ़ंक्शन के कोड को निष्पादित करने से रोक सकता हूं?

मैं नहीं पूछ रहा हूं कि किसी तत्व के पास "बाध्य" है या नहीं, बल्कि अगर यह घटना किसी विशेष पल में ट्रिगर की जा रही है।

क्या मैं यह कर सकता हूं? या मुझे एक और दृष्टिकोण लेने की ज़रूरत है?

यहाँ क्या मेरी कोड लग रहा है जैसे:

$('.container').scroll(function(){ 
    //get the heights of the container and it's contents and the difference 
    //get the height of the scroll bar and it's container and the difference 
    //declare the top property of scroll bar from this info 
}); 
function scrolly() { 
    //get the heights of the elements described above 
    //declare the scrollTop of the container 
} 
$('.bar').draggable({ 
    axis: 'y', 
    containment: 'parent',  
    drag: function() { 
     scrolly(); 
    } 
}); 
+0

आपको लगता है कि प्राप्त कर सकते हैं आपके भीतर 'ड्रैग' फ़ंक्शन, क्योंकि ड्रैगिंग जारी होने पर 'ड्रैग' आग लगती है – thecodeparadox

+0

+1 - ग्रेट प्रश्न – jmort253

+0

यह स्पष्ट नहीं है कि आपका क्या अन्य कार्य कर रहा है, लेकिन यदि वे दोनों स्क्रॉलिंग में शामिल हैं, तो क्या आप संभवतः उन्हें एक साथ विलय कर सकते हैं? – jmort253

उत्तर

13

अद्यतन

यदि आपका बार घसीटा जा रहा है इस हालत का उपयोग कर सकते पता लगाने के लिए:

if ($('.bar').is('.ui-draggable-dragging')) { 
    return; // bar is being dragged 
} 
+0

यह ड्रैगगेबल के लिए 'स्टॉप' कॉलबैक में भी 'सत्य' देता है, क्योंकि jquery ui '_clear' को कॉल करने से पहले' स्टॉप 'कहता है जो इस वर्ग को हटा देता है। 'स्टॉप' हैंडलर के लिए कोई अन्य वैकल्पिक समाधान? –

+0

@coding_idiot मेरी पहली प्रवृत्तियों का कहना है कि स्टॉप हैंडलर के अंदर आप शायद _should_ मान लें कि इसे अब ड्रैग नहीं किया जा रहा है ;-) –

+0

भ्रम के लिए खेद है, 'ड्रैग' और 'स्टॉप' एक ही फ़ंक्शन को कॉल कर रहे हैं, जिसमें मैं अलग कर रहा हूं इस पर निर्भर करता है कि ड्रैगिंग अभी भी चल रही है या नहीं। अभी तक, मैंने 'स्टार्ट' में एक क्लास जोड़ा है और इसकी देखभाल करने के लिए' स्टॉप 'में हटा दिया है :) –

संबंधित मुद्दे