我想了解jQuery類,但它不會很好。使用jQuery創建一個簡單的JavaScript類
我的目標是使用一類這個方法(或想了解一個更好的方式來做到這一點):
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'實例方法內引用實例對象本身,所以你不能使用'$(this).keypress','$(this).css'等,因爲'this'不引用DOM元素和查詢字符串。你的函數調用也是錯誤的,它應該讀取'this。MoveRight()'但是當你處在一個將'this' context設置爲DOM元素本身的jQuery處理程序中時,您需要將實例的'this'賦值給作用域鏈中一個級別的變量,以便您可以在處理程序中訪問它來調用它的'MoveRight' /'MoveLeft'方法。 –
你能告訴我你將如何改變我的代碼來解決我所做的問題嗎?如果我可以編寫一個好的代碼與我的代碼相比,我會更容易看到我做了什麼。 (如果不是太難) – samy
我可以嘗試男人,但它比「修復」更接近完全重寫。 ':P'我會看看我能否舉一個簡單的例子。 –