Я работаю над простым интерфейсом на стороне клиента, где у меня есть объект jQuery, к которому я хочу получить доступ непосредственно при нажатии на гиперссылку. Упрощенный код:Доступ к объекту javascript непосредственно через DOM, проходящий через 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
объекту непосредственно через обход DOM с JQuery?
Обязательно могу проверить, this.scoreElement == $(element).parent()
в некотором роде, а затем получить доступ к объекту недвижимости в моем this.scoreElement
объекте, но прямой доступ будет более изящным и надежным. Это возможно? Неужели я ошибаюсь? Благодаря!
PS: Игнорируйте тот факт, что я использую parent()
, чтобы найти scoreElement
, я использую его только для иллюстрации моей проблемы. Если это не является частью проблемы, в этом случае не игнорируйте :)
Это все очень запутанным. Чего вы на самом деле пытаетесь достичь? –
То, что я на самом деле собираю, это простая игра в кости, в которой я могу «держать» любую смерть, щелкнув ссылку, связанную с фильмом; эта ссылка является дочерним элементом элемента DOM, который составляет матрицу. Я думаю, мне лучше создать отдельный объект для каждой кубики, что заставляет мою проблему уйти, но мне все же хотелось бы немного узнать, получив хорошее решение/ответ на мой вопрос. – Phortuin