попробуйте рассмотреть возможность использования Javascript. Хотя это может быть отслежено отладчиком JS, обучение использованию отладчика было бы знанием более высокого уровня, чем просто вглядывание в источник или дерево DOM.
построить объект, который имеет частную область видимости. используя этот объект, создайте 3 изображения, которые вам нужны. назначьте эти 3 изображения 3 частным переменным в этом объекте. только тот объект знает, какое изображение является каким. вам даже не нужно давать им различие в его атрибутах, поскольку вы можете отслеживать их в объекте, используя эти 3 приватные переменные.
В моем примере я использую $ .data (), который можно просмотреть. хотя они могут знать идентификатор блока, они не знают значения переменной target
внутри замыкания.
рассмотрите возможность рандомизации значения target
вместо этого и поместите любую ячейку с таким значением в середину. таким образом, они не будут отслеживать одну и ту же коробку все время.
var game = (function(){
//set which box is the target
//they will never know this value
//i sugest including this in randomizing
var target = 1;
//storage variable for the boxes
var boxes = {};
//retrieve data stored and check with target
var check = function(element){
var boxID = $(element).data('boxID');
//check if a match
if(boxID === target){
alert('got me!');
} else {
alert('not me!!!');
}
}
//create 3 boxes and store them in boxes object
for(var i = 0; i < 3 ; i++){
//create box HTML and store it in a variable
//notice that all boxes will have this very same HTML
var box = $('<img src="box.jpg" />');
//store the box identifier using $.data()
//at least in this manner, you are not storing
//the id as an attribute
box.data('boxID',i);
//if your plugin looks like "element.path()"
//plug it to every box created
box.path({
options:value....
});
//add handler for checking
box.on('click',function(){
check(this);
});
//store in the private variable
boxes['box'+ i] = box
//append box to the display, in this case, the body.
$('body').append(box);
}
//your "pathing" function
var randomize = function(){
//do your random path stuff here
//access boxes using: boxes.box1, boxes.box2 and so on...
//they are jQuery objects already so you can use jQuery functions on them
};
//return public accessible methods and functions
return {
randomize : randomize //expose the randomize function
}
}());
после этого, просто позвоните game.randomize()
, чтобы определить путь (поскольку в коде публично доступен только случайный выбор)
попытался записать объект game
, а также элементы div, без признаков реального target
.