我正在开发一个简单的客户端界面,其中有一个 jQuery 对象,我想在单击超链接时直接访问该对象。简化代码:
<div class="controls">
<div class="score">
<a class="button" href="/add">Add points!</a>
</div>
</div>
$(".controls").myControls();
$.fn.myControls = function() {
return $.extend(this, $.myControls).initialize();
}
$.myControls = {
initialize: function() {
this.scoreElement = $("div.score", this);
this.linkElement = $("a", this.scoreElement);
this.scoreElement.score = 0;
var _this = this;
this.linkElement.click(function() {
_this.clickHandler(this);
});
},
clickHandler: function(element) {
var scoreElement = $(element).parent();
scoreElement.score = 1;
}
}
说明:.controls
元素具有.score
兼作分数信息容器的元素 ( this.scoreElement.score
)。当我单击.score
元素内的链接时,我找到了父元素,它与 DOM 中的元素相同,this.scoreElement
并尝试将其score
属性设置为 1。显然,这不起作用,因为方法中的本地scoreElement.score
属性clickHandler
是“不明确的”。
所以这是我的问题:this.scoreElement
有没有一种简单的方法可以通过使用 jQuery 遍历 DOM 来直接访问我的对象?
当然,我可以检查是否this.scoreElement == $(element).parent()
以某种方式访问this.scoreElement
对象中的正确属性,但直接访问会更加优雅和健壮。这可能吗?我是不是走错路了?谢谢!
PS:忽略我parent()
用来查找的事实scoreElement
,我只是用它来说明我的问题。除非它是问题的一部分,否则在这种情况下不要忽略:)