29.03.2010, 19:38
|
Новичок на форуме
|
|
Регистрация: 29.01.2010
Сообщений: 5
|
|
Внутреннее состояние плагина
Доброе время суток! Заранее извиняюсь, если подобная тема уже поднималась здесь.
При выполнении плагина мне нужно хранить текущее состояние объекта (к примеру, положение ползунка или текущий кадр-слайдшоу).
Внутри плагина используются некоторые функции.
Если плагин применяется к нескольким элементам, то при вызове этих внутренних функций, я не имею доступа к внутренним свойствам текущего объекта. И приходится передавать их отдельно входным параметром как объект (ключ->значение).
Мне не очень нравится такой способ, хочу узнать, может существуют ли какие другие методы выхода из ситуации.
Если необходимо, могу приложить пример.
|
|
29.03.2010, 23:00
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Увы, "родных" средств для этого нет.
|
|
29.03.2010, 23:10
|
Новичок на форуме
|
|
Регистрация: 29.01.2010
Сообщений: 5
|
|
Какие есть не "родные" средства jQuery?
В этом отношении мне очень нравится Mootools с его объекто-ориентированностью...
|
|
29.03.2010, 23:42
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
В отношении плагина у браузеров отношение примерно следующее: «я тебе отдаю кусок экрана, 300×200 пикселей, выделяю память и позволяю кое-что, но не всё».
Если Вам нужно дать ссылку, скажем, на кадр слайдшоу на флеше, Вам придется об это озаботиться особо.
Например, каждый переход по такому слайдшоу должен вызывать переход на урл с решеткой, а потом при загрузке страницы текст после решетки в урле («хэш») должен передаваться обратно галерее. Почти наверняка, исполнение такого метода взаимодействия лежит за пределами этого форума.
|
|
30.03.2010, 00:14
|
Новичок на форуме
|
|
Регистрация: 29.01.2010
Сообщений: 5
|
|
Это понятно, но я не об этом спрашиваю
http://demo.vkurseweba.ru/jquery/carousel/vertical.html
к примеру тут я писал скрипт карусели.
В теле плагина есть функция scrollingTo(), которая использует параметр position.
Если карусель на странице одна - все ок, иначе параметр position общий для всех плагинов.
Чтобы избежать этого приходилось передавать его входым параметром в функцию scrollingTo()
|
|
30.03.2010, 01:01
|
|
Пионэр
|
|
Регистрация: 16.11.2009
Сообщений: 1,322
|
|
Ч-черт, я опять не посмотрел, в каком разделе нахожусь.
Прошу прощения, я говорил про плагины браузерные.
|
|
30.03.2010, 03:44
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
ну можно писать widget'ы (jquery ui), хотя тоже та еще "архитектура". Да и меняется она от версии к версии. Хотя понятно, в общем-то, это ж внутренняя штука
а вообще чего ты хотел? У тебя же по сути функция, а не класс (объект). При таком подходе можно выбрать основной элемент, в котором будет храниться информация, и у которого все ее будут спрашивать
p.s. а разве там position один на всех получается?
Сообщение от alexander2
|
В этом отношении мне очень нравится Mootools с его объекто-ориентированностью...
|
|
|
30.03.2010, 23:02
|
Новичок на форуме
|
|
Регистрация: 29.01.2010
Сообщений: 5
|
|
Используется position последнего элемента к которому применяется плагин. То есть в моем примере, крутиться будет последний элемент, даже если нажимать на элементы управления других.
Я не удивляюсь что оно работает не так как мне хочется.
Сообщение от x-yuri
|
При таком подходе можно выбрать основной элемент, в котором будет храниться информация, и у которого все ее будут спрашивать
|
Имеешь в виду, хранить параметр как атрибут элемента?
|
|
31.03.2010, 09:24
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
тогда может дело в понимании замыканий?
|
|
01.04.2010, 11:30
|
Новичок на форуме
|
|
Регистрация: 29.01.2010
Сообщений: 5
|
|
Спасибо за ссылку. Но в любом случае мне придется передавать каждую нужную переменную отдельно, чтоб использовалась она вместо той что сохранилось после всех вызовов.
И если у меня их к примеру 5 то это не очень удобно.
|
|
|
|