![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Cheizer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Дорогие друзья, подскажите пожалуйста, как передать параметр VAR из одной функции в другую?
Первые две click функции должны подменять параметры var link1 и link2 в двух последних. Как это сделать ума не приложу.
Это сообщение отредактировал(а) Aliance - 23.12.2014, 07:56 |
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
http://yandex.ru/yandsearch?lr=11406&t...%81%D1%82%D0%B8 Это сообщение отредактировал(а) Aliance - 23.12.2014, 07:56 |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
_zorn_, какой смысл объявлять локальные переменные внутри функции $(document).ready(), а потом обращаться к ним из callback`ов обработчиков событий. Это создает лишнее замыкание, да и выглядит странным. Мне кажется правильнее выносить первичное объявление (инициализирование) переменных ВНЕ $(document).ready().
|
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Да, все верно, затупил.
|
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
А на мой взгляд это довольно популярная и полезная практика что бы не засорять глобальное пространство, если эти переменные не юзаются извне. Не зря же даже самые популярные библиотеки оборачивают в function() |
|||
|
||||
| Cheizer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Скажите пожалуйста, можно поподробнее о методе? Как это "ервичное объявление (инициализирование) переменных ВНЕ $(document).ready()." ? |
|||
|
||||
| sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Имеется ввиду что если есть конструкция типо
И переменная a может использоваться вне $(document).ready(), ну или как считает Aliance (у меня противоположное мнение), следует писать так:
И все же я бы использовал первый вариант, если переменная а не используется вне function() в которой объявлена |
||||||
|
|||||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
sQu1rr, согласен, зависит от задач. Я отнес переменные linkX к тем, которые д.б. глобальными. Но вообще возможно было бы логичнее сделать запись данных в hidden поле и его чтение позже, где нужно (конкретно в данном примере, а не всегда).
|
|||
|
||||
| Cheizer |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Да, я понимаю, но если в одном $(document).ready две клик функции, и как из одной передать var переменную в другую????
Это сообщение отредактировал(а) Cheizer - 23.12.2014, 13:44 |
|||
|
||||
| sQu1rr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
click handler - это функция которая выполняется при нажатии на какой-то элемент. Зачем передавать значение из одного хэндлера в другой - лично мне не понятно. Если вам нужно сначало "нажать" на первый элемент который присвоит значение переменной, которая будет использоваться при нажатии на втором элементе, то делайте так как советует _zorn_. Или потрудитесь объяснить задачу, что бы можно было посоветовать что-то уже более специализированное |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Cheizer, вам же уже ответили. Вы должны объявить переменную ВНЕ функции, тогда вы сможете из одной к ней обратиться для записи, а в другой для чтения.
|
|||
|
||||
| Cheizer |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Я не понимаю, но вот так:
При клике по input#id1 в атрибут a#order_link не попадает данные из переменной link1, как передать ее туда? |
||||
|
|||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 17 Всего: 137 |
Э, изначальная задача звучала по-другому: Вы определитесь что вам нужно. Когда происходит и зачем нужен клик по input#id3 и input#id4? И что за элементы input у которых вы ловите клик? button? |
|||
|
||||
| sQu1rr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Ну, давайте еще раз. click() вызывает данную функцию при клике по элементу
То есть если вы кликните на input#id1 то a#order_link не измениться пока вы не кликните по input#id3 Кстати говоря никогда не мешайте ID с тагами. Так как ID в любом случае (должы быть) уникальны, то достаточно (и намного, намного намного оптимальнее) просто обращаться к $('#id1') Если вы хотите что бы при клике на #id1, #order_link ссылался на link1, так и пишите
Это сообщение отредактировал(а) sQu1rr - 23.12.2014, 17:05 |
||||||
|
|||||||
| Cheizer |
|
||||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 28.1.2011 Репутация: нет Всего: нет |
Извиняюсь, я наверное не правильно обьяснил. Опишу ситуацию подробнее, может что лучше посоветуете. Есть 4 инпута, типа радиокнопки, и одна ссылка в которой все 4 инпута по клику, должны менять атрибут HREF. Первые два инпута, выбирают на какой сайт должна быть ссылка.
другие два инпута, выбирают на какую страницу направить пользователя ( по 2 страницы на каждом сайте).
И наконец сама кнопка действия :
И никак не пойму как сделать зависимыми переключение сайтов и их ссылок :( |
||||||||||||
|
|||||||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |