我正在开发一个简单的客户端界面,其中有一个 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,我只是用它来说明我的问题。除非它是问题的一部分,否则在这种情况下不要忽略:)