我正在制作一个游戏,其中我有一个“玩家”,玩家是一个data
附加了 jquery 的图像,我可以访问data
当我命名时,img
$playerSprite
即使使用 id(而不是$playerSprite
)像这样
function Player() {
this.inFight = false;
}
player = new Player();
$playerSprite = $("<img>", {
"id":"test",
"src": "http://3.bp.blogspot.com/-kAhN0HX-MBk/T_5bApfhbJI/AAAAAAAAAuI/lUww8xT9yV8/s1600/smileys_001_01.png",
}).data("model", player);
$("div").append($playerSprite);
alert($("#test").data("model").inFight);
但是,当我将“播放器”创建为 aimg
时div
,我可以使用它来访问img
,id
但是我无法使用data
它来访问。使用以下代码
function Player() {
this.level = 1;
}
function Game() {
var player = new Player();
$("div").html($("<img>", {
"class": "onTop displayCurrentHealth",
"src": "http://3.bp.blogspot.com/-kAhN0HX-MBk/T_5bApfhbJI/AAAAAAAAAuI/lUww8xT9yV8/s1600/smileys_001_01.png",
"alt": "you",
"id": "test"
}).data("model", player)
);
}
Game();
$("#test").click(function(){alert("success");});
$("#test").click(function(){alert($(this).data("model").level);});
alert($("#test").data("model").level);
如果我点击img
它警报“成功”然后我得到Uncaught TypeError: Cannot read property 'level' of undefined fiddle.jshell.net/6Erj5/3/show/:40