Перезапись переменной функции Javascript по требованию - PullRequest
0 голосов
/ 16 февраля 2012

Моя проблема связана с возможностью перезаписи переменных, объявленных внутри функции, но не при каждом вызове функции.Вот мое объяснение:

Допустим, у меня есть три HTML-элемента при загрузке страницы:

<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>

Затем я запускаю функцию javascript, управляющую каждым из этих элементов и применяющую функции к "onmousemove ".Во время вызова функции существуют переменные, которые объявлены и НЕ должны перезаписываться, чтобы значения переменных оставались уникальными для элемента (в противном случае движение мыши будет перезаписано и будет работать только для последнего элемента).Я знаю, что этого можно добиться, объявив их локальными переменными.

Моя проблема заключается в следующей части:

После того, как все это будет сделано, у меня на странице появятся другие события, которые вызывают начальныефункция для повторного запуска на том же элементе, на котором она была запущена изначально, но с другими значениями, которые теперь должны перезаписывать оригиналы.Я бы опубликовал код, но это несколько тысяч строк кода, так что я надеюсь, что вы все понимаете, о чем я говорю.

Я думаю, что я могу решить эту проблему, дублируя функцию и объявляя переменныеиначе, но это означало бы иметь две копии большого блока кода, что, на мой взгляд, никогда не было бы хорошей идеей, и я бы хотел этого избежать.

Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2012

Итак, я понял, как добиться того, чего хотел. Я переработал свой код в объекты. Когда я запускаю код изначально, каждый элемент имеет свой собственный объект с глобальной переменной (window [element + 'obj']), который манипулирует элементом с помощью методов-прототипов, которые хранят значения каждого элемента отдельно, тогда, когда мне нужно перезаписать значения конкретный элемент, я вызываю метод, который сбрасывает все значения для этого объекта. Я постараюсь опубликовать пример кода позже для всех, кто сталкивается с этой проблемой.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...