Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сохранять в свойстве элемента или в глобальной переменной? (https://javascript.ru/forum/jquery/34054-sokhranyat-v-svojjstve-ehlementa-ili-v-globalnojj-peremennojj.html)

OctoberTide 19.12.2012 11:16

Сохранять в свойстве элемента или в глобальной переменной?
 
Есть простой пример кода: http://jsfiddle.net/Leonid/RR6hG/2/
У меня есть вопрос - где хранить данные о выбранном квадрате? В данном примере данные хранятся как this.myProperty, но я вот не знаю, а хорошо ли так? Или сделать глобальную переменную в которой хранить текущий выбранный щелчком мыши элемент? Пример не мой, но проблема у меня очень похожа.
Спасибо.

Sanda 19.12.2012 12:54

Так пойдёт?
http://jsfiddle.net/RR6hG/3/

OctoberTide 19.12.2012 15:02

Цитата:

Сообщение от Sanda (Сообщение 222300)
Так пойдёт?
http://jsfiddle.net/RR6hG/3/

Я этот вариант называл "с глобальной видимостью"... Хотя не правильно выразился, она ведь видна только в пределах функции.
Подскажите, пожалуйста, как делать правильнее как у вас или как у меня? Т.е. как будет по фэншуй?

Sanda 19.12.2012 15:13

Если по логике, то в property должно храниться свойство конкретного объекта, всё остальное должно быть в переменных. Поскольку выбранный квадрат имеет мало отношения к input#image-upload, то я бы складывал в переменную. Только переименовал бы её. Когда писал код, не задумывался над именем. Ну а (function(){}()) защищает глобальную область от лишних переменных - то есть этот код будет бесконфликтно встраиваться в любой скрипт, где $ = jQuery.
Но вообще сам бы с удовольствием послушал о том, как делать "правильно".

OctoberTide 19.12.2012 20:43

Sanda
Как оказалось IE10 не позволяет добавлять новое свойство элементу. Т.е. первый вариант (http://jsfiddle.net/Leonid/RR6hG/2/) в нем не работает. Так что по всему нужно использовать Ваш.
Спасибо за помощь! Приятно было пообщаться)


Часовой пояс GMT +3, время: 13:22.