में अपरिभाषित है मेरी एचटीएमएल 5 पेज में, मैं इस प्रकार mousemove
घटना के साथ एक div है। लेकिन फ़ायरफ़ॉक्स में, दोनों मूल्य undefined
दे रहे हैं। मैंने फ़ायरबग का उपयोग करके इसे चेक किया है, यानी e
ऑब्जेक्ट को कंसोल पर लॉग ऑन किया है। offsetX
और offsetY
दोनों undefined
पाए गए हैं।एचटीएमएल 5 e.offsetX फ़ायरफ़ॉक्स
जब मैं गूगल में खोज की है, वहाँ एक समाधान कह रहा layerX
और layerY
का उपयोग करना चाहिए, अगर दोनों offsetX
और offsetY
अपरिभाषित हैं था। लेकिन फायरबग से, मैं इसे खोजने में सक्षम नहीं था। और यहां तक कि मैं इसे इस तरह एक कोशिश दिया था:
xpos = (e.offsetX==undefined)?e.layerX:e.offsetX;
ypos = (e.offsetY==undefined)?e.layerY:e.offsetY;
लेकिन वह भी मान के रूप में undefined
दे रहा है।
मैं सबसे हालिया jQuery - v1.8.2 का उपयोग कर रहा हूं। और मैं अपने फ़ायरफ़ॉक्स v14.0.1
किसी भी विचार या सुझाव में परीक्षण कर रहा हूं?
संपादित
dystroy और मेरी मदद के लिए vusan के लिए धन्यवाद। ऊपर मुद्दे का हल इस प्रकार है:
समाधान
$('#canvas').mousemove(function(e){
$('#cursor').show();
if(e.offsetX==undefined) // this works for Firefox
{
xpos = e.pageX-$('#canvas').offset().left;
ypos = e.pageY-$('#canvas').offset().top;
}
else // works in Google Chrome
{
xpos = e.offsetX;
ypos = e.offsetY;
}
$('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});
यह सुनिश्चित नहीं है कि आप Google क्रोम का किस संस्करण का उपयोग कर रहे थे, लेकिन ऐसा लगता है कि संस्करण क्रोम v26 में एक अपरिभाषित वस्तु भी है। – cartbeforehorse
@cartbeforehorse: मैं क्रोम संस्करण 26.0.1410.64 मीटर का उपयोग कर रहा हूँ। और यह ठीक काम करता है। इसे लाइव देखें: http://jsfiddle.net/EEftW/ –
मुझे यकीन है कि इसमें चूसा गया है। टाइपस्क्रिप्ट और स्ट्रॉन्गली टाइप की गई jQuery परिभाषा फ़ाइलों का उपयोग करके, मुझे विश्वास था कि ऑफ़सेटएक्स/वाई jquery के कुछ हिस्सों थे। कभी नहीं पता था कि वे वैकल्पिक थे और केवल कुछ ब्राउज़रों में शामिल थे। आपकी पोस्ट के लिए धन्यवाद, आपने कोड की एक विशाल गड़बड़ी में समस्या को खोजने में मेरी मदद की। – fabspro