У меня жесткое понимание времени и с помощью замыкания (да, я прочитал How do JavaScript closures work?)Javascript значения закрытия замораживании инкрементора
Моя проблема заключается в следующем:
for (row = 0; row < 10; row++) {
for (column = 0; column < 10; column++) {
var target = $("#" + Data.Row[row].Column[column].ID);
target.mouseenter(function() {
var position = CalculatePosition($(this));
alert("row:" + row + ",column:" + column);
...
});
}
}
Как и следовало ожидать, строка и столбец всегда 9, когда у цели есть указатель мыши над ней. Тогда мой вопрос: как я могу заморозить значение строки и столбца, чтобы анонимная функция mouseevent могла получить свои предполагаемые значения? Я пытался делать что-то вроде
target.mouseenter(function() {}.bind(column));
И это, кажется, работает для всего столбца, но тогда, конечно, this
больше не обращаясь к цели.
Нах, [ 'bind'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind) делает что-то другое, которое вы можете» t здесь (также читайте [о ключевом слове 'this'] (https://developer.mozilla.org/ en-US/docs/Web/JavaScript/Reference/Operators/this)) – Bergi
@Bergi Он может использовать функцию 'bind' like:' function (row, column) {}. bind (target, row, column) '. – Paulpro
Я подозреваю, что вы хотите, чтобы функция узнала, какой элемент был нажат, и каждый элемент имеет другой идентификатор. Правда? –