के साथ एक साधारण जावास्क्रिप्ट क्लास बनाना I jQuery वर्गों को समझने की कोशिश कर रहा हूं लेकिन यह बहुत अच्छा नहीं चल रहा है।jQuery
मेरा लक्ष्य एक वर्ग इस तरह से उपयोग करने के लिए (या यह करने के लिए एक बेहतर तरीका जानने के लिए) है:
var player = new Player($("playerElement"));
player.InitEvents();
अन्य लोगों के उदाहरण का उपयोग करना, यह मैं क्या करने की कोशिश की है:
$.Player = function ($) {
};
$.Player.prototype.InitEvents = function() {
$(this).keypress(function (e) {
var key = e.which;
if (key == 100) {
MoveRight();
}
if (key == 97) {
MoveLeft();
}
});
};
$.Player.prototype.MoveRight = function() {
$(this).css("right", this.playerX += 10);
}
$.Player.prototype.MoveLeft = function() {
$(this).css("right", this.playerX -= 10);
}
$.Player.defaultOptions = {
playerX: 0,
playerY: 0
};
अंत लक्ष्य कुंजीपटल अक्षरों A
और D
का उपयोग कर स्क्रीन पर बाईं ओर दाईं ओर एक चरित्र चलाना है।
मुझे एहसास है कि मैं इस "कक्षा" के साथ कुछ गलत कर रहा हूं लेकिन मुझे यकीन नहीं है कि क्यों।
(मेरी अंग्रेजी के लिए खेद है)
'उदाहरण तरीकों अंदर this' का संदर्भ उदाहरण वस्तु स्वयं ही आप '$ (यह) .keypress',' $ (this) .css' आदि का उपयोग नहीं कर सकते हैं क्योंकि यह 'D' तत्व और न ही क्वेरी स्ट्रिंग का संदर्भ नहीं देता है। आपकी फ़ंक्शन कॉल भी गलत हैं, इसे 'इसे पढ़ना चाहिए।MoveRight() 'लेकिन जैसा कि आप एक jQuery हैंडलर के अंदर हैं जो 'इस' संदर्भ को डीओएम तत्व में ही सेट करता है, आपको आवृत्ति के 'यह' को चरम श्रृंखला में एक चर के स्तर को असाइन करने की आवश्यकता होगी ताकि आप कर सकें इसे 'MoveRight'/'MoveLeft' विधियों को कॉल करने के लिए हैंडलर के अंदर पहुंचें। –
क्या आप मुझे दिखा सकते हैं कि मैंने अपनी समस्या को ठीक करने के लिए अपना कोड कैसे बदल दिया? यह देखने के लिए मेरे लिए बहुत आसान होगा कि मैंने क्या किया है अगर मैं एक अच्छा कोड बनाम मेरा सामना कर सकता हूं। (यदि बहुत कठिन नहीं है) – samy
मैं आदमी को आजमा सकता हूं, लेकिन यह "फिक्स" की तुलना में एक पूर्ण पुनर्लेखन के करीब है। ': पी' मैं देखूंगा कि क्या मैं एक साधारण उदाहरण बना सकता हूं। –