0
我有一個循環,像這樣:訪問屬性
for (var i = 0; i < 10; i++) {
obj[i] = new MapArea(some passed variables);
}
現在這個構造有一些預定義的屬性,以及一些在初始化定義。正如for循環所暗示的,每個obj都保存在數組obj []中的自己的索引中。我的問題是,我已經通過初始化迭代後,我不能用
this.propertyName;
或
$(this).propertyName;
插件引用單個對象的屬性,我的建築工作過的鼠標事件(點擊和懸停)這意味着我需要能夠檢查附加到事件上的obj是否具有當前狀態的特定屬性,但是沒有辦法通過編程知道它在數組中的哪個索引來引用它,或者至少可以輕鬆簡潔地實現。
有沒有人遇到過這個問題,並找到一個解決方案,或者我幾乎被迫使用數組和索引作爲參考?任何幫助都是極好的。
這裏是我的方法,例如一個:
$.fn.clickLight = function(options) {
var defaults = $.extend({
color : "#43464B",
opacity : "0.3"
}, options);
ctx.globalAlpha = defaults.opacity;
$(area_ref).click(function(event) {
$(this).handleMouse(event).each(function() {
if (!$(this).clicked) { // I try and access here
console.log(obj.this.clicked);
$(this).highlight(defaults.color);
$(this).clicked = true;
} else {
console.log(this.clicked);
$(this).clearlight();
$(this).clicked = false;
}
});
});
$(area_ref).hover(function() {
$(this).handleMouse().each(function() {
$(this).highlight(defaults.color);
});
},function() {
if (!$(this).clicked){ // I try and access here
$(this).handleMouse().each(function() {
$(this).clearLight();
});
}
});
return $(this);
};
你必須建立某種聯繫。您可以將索引保存在[數據屬性](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes)或手動綁定每個對象的點擊處理程序(不建議) –
提供一些代碼,你使用'this.propertyName' – Maxx
ahhh,我喜歡數據屬性的想法。我完全忘記了這一點。我現在就試試 – Turk