2011-12-20 10 views
6

मैं jqueryUI से jQuery और draggable का उपयोग करता हूं। जब मैं 1.6 से 1.7 क्लाइंटएक्स से jQuery अद्यतन करता हूं और इवेंट वैरिएबल से पेजएक्स गुण गायब हो जाते हैं। यहाँ एक उदाहरण है:jQuery 1.7 क्लाइंटएक्स/पेजएक्स अपरिभाषित

http://jsbin.com/ezulas/7/edit

दिए गए उदाहरण में jQuery संस्करण 1.6.4 करने के लिए बदल गया है, तो - यह काम करना शुरू। नवीनतम रिलीज के साथ - क्लाइंटएक्स/वाई और पेजएक्स/वाई दोनों काम नहीं कर रहे हैं। मैंने पाया कि मैं e = e.originalEvent का उपयोग कर सकता हूं - लेकिन यह उचित समाधान प्रतीत नहीं होता है।

+0

मुझे यह वही समस्या है। मुझे लगता है कि यह एक नई बग है जिस तरह से यह बंधे हैं। उदाहरण के लिए, यदि आप कोशिश करते हैं: $ (दस्तावेज़)। बाइंड ('क्लिक करें', फ़ंक्शन (ई) {console.log ("e.pageX:" + e.pageX + ", e.pageY:" + e.pageY) ;}); यह पूरी तरह से ठीक काम करता है। क्या आपने jquery के साथ एक बग लॉग किया था? – Matt

+0

मैंने इसे लॉग नहीं किया, मैंने सोचा कि किसी ने पहले से ही इस तरह की बड़ी बग देखी है। – Thinker

+0

ऐसा लगता है कि किसी ने http://bugs.jquery.com/ticket/10729 किया था। बग अभी भी खुला है और इसके बारे में बहुत बहस हुई है कि इसे ठीक किया जाना चाहिए और कैसे। – JosephL

उत्तर

7

event.layerX और event.layerY: हमने संस्करण 1.7 में इन गैर मानक गुणों को हटा दिया है। हालांकि हम आमतौर पर पर इनके लिए एक बहिष्करण नोटिस अवधि के माध्यम से गए होंगे, क्रोम संस्करण 16 पृष्ठ पर कंसोल चेतावनी संदेश की बाढ़ उत्पन्न करता है। की वजह से, हमने तुरंत उन्हें हटाने का निर्णय लिया। प्लेटफार्मों पर अभी भी इन गुणों का समर्थन करते हैं, वे event.originalEvent.layerX और event.originalEvent.layerY के माध्यम से उपलब्ध हैं।

स्रोत: http://blog.jquery.com/2011/11/03/jquery-1-7-released/

आप console.log(e); अपने dragstop ईवेंट हैंडलर के अंदर आप देख सकते हैं जब कि सभी x/y डेटा समन्वय jQuery 1.7 में याद आ रही है; लेकिन इसे event.originalEvent में एक्सेस किया जा सकता है।

अद्यतन

आप event वस्तु में चारों ओर देखो, तो आप origionalEvent संपत्ति में pageX/pageY पा सकते हैं: http://jsbin.com/ezulas/13/edit

+1

आपका उत्तर असंबंधित लगता है। मेरे प्रश्न में मैंने पहले से ही originalEvent की ओर इशारा किया है। JQuery दस्तावेज़ों में आप पढ़ सकते हैं, कि event.pageX और पेज वाई वेरिएबल्स हैं, जिनका आप उपयोग कर सकते हैं। और वे 1.7 के साथ काम करते हैं। लेकिन मेरे विशिष्ट मामले में नहीं। – Thinker

+1

मुझे क्या याद आया? यदि आप 'e.pageX' को' e.originalEvent.pageX' में बदलते हैं तो आपको ईवेंट का क्षैतिज स्थान मिलता है। आप और क्या करना चाहते हैं? – Jasper

+2

jQuery दस्तावेज़ों में लिखा गया है कि हम event.pageX का उपयोग करके पेजएक्स तक पहुंच सकते हैं: http://api.jquery.com/event.pageX/ लेकिन यह काम नहीं कर रहा है और मैं इसे हल करने के बजाय इसके बारे में सोच रहा हूं, वर्कअराउंड का प्रयोग करें। – Thinker

0
:

$('#test').html(e.originalEvent.pageX+','+e.originalEvent.pageY); 

यहाँ अपने jsbin के एक अद्यतन संस्करण है

Event Object के लिए jQuery दस्तावेज़ों में यह

कहता है

निम्नलिखित गुण भी घटना वस्तु को कॉपी कर रहे हैं, हालांकि उनके मूल्यों के कुछ घटना के आधार पर अपरिभाषित जा सकता है:

altKey, बुलबुले, बटन, रद्द करने, charCode, clientX, clientY, ctrlKey, currentTarget , डेटा, विस्तार, eventPhase, metaKey, offsetX, offsetY, originalTarget, पृष्ठ X, पृष्ठ Y, prevValue, relatedTarget, screenX, Screeny, shiftKey, लक्ष्य, देखने के लिए, कौन सा फिट करने के लिए आप क्या कह रहे हैं लगता है जो

में स्थिति आपके ईवेंट में पेजएक्स और पेजवाई परिभाषित नहीं है।

+1

लेकिन इसे jQuery 1.6 में परिभाषित किया गया था, समझ में नहीं आता कि अब इसे originalEvent.clientX के अंतर्गत क्यों परिभाषित किया गया है – Thinker

1

मुझे एक ही समस्या थी और थोड़ी देर के लिए समान धागे खोज रही थी। अब काफी देर हो चुकी है, लेकिन मुझे उम्मीद है कि यह अभी भी कुछ खुश कोडर्स को निराशा से बचाएगा। मैंने jQuery UI टच पंच फ़ाइल की जांच की है जिसे मैं अपने प्रोजेक्ट में भी उपयोग कर रहा था और पाया कि यह x/y स्थिति को कैसे संदर्भित करता है।सभी jQuery फ़ाइलें मैं उपयोग कर रहा हूँ की एक सूची

$('.pages').on('touchstart vmousedown', function(e){ 
    var this_event_touch_start_Y = e.originalEvent.changedTouches[0].clientY; 
    var this_event_touch_start_X = e.originalEvent.changedTouches[0].clientX; 
}); 

संदर्भ के लिए,:

  • jQuery-3.1.1.min.js
  • jQuery यह वही अंत में मेरे लिए काम किया है। touchSwipe.min.js
  • jQuery-ui.min.js
  • jquery.ui.touch-punch.min.js
  • jquery.mobile-1.4.5.min.js
संबंधित मुद्दे