передача аргументов в функцию
Всем привет
не понимаю что за конченный язык этот javascript и на ем же основанная jquery.:-/ есть обычный код который будет работать во всех языках программирования,только не в javascript (я имею в виду не конкретный код а принцип). <script type="text/javascript"> $(function() { var category_id; $('.category').click(function() { category_id = $(this).attr('id'); alert(category_id); }); if (category_id) getCategoriesByParent(category_id); }); В этом коде есть переменная category_id которая после события клика на div с классом category инициализируется значением аттрибута id.Далее переменная category_id должна передаваться в функцию getCategoriesByParent(category_id),но она туда почему-то не передается,хотя внутри события клик она видна и alert(category_id) ее выводит.Но ведь она объявлена выше кода $('.category').click(function() { следовательно значение в ней должно сохраняться и передаваться в функцию getCategoriesByParent(category_id),но не передается. Вопрос:почему????????????????????????? ?????????????????????????????????????????????????? ??????????????????????????????????????? |
yintar,
то есть перенести 7 строку в 10 вам трудно? |
не трудно я так и делал.Просто мне нужно чтобы getCategoriesByParent(category_id) вызывалась один раз после того как будет известно значение category_id;
я не понимаю почему так не работает |
Потому что клик - это событие, которое возникнет когда-нибудь, или не возникнет вовсе, а if ваш исполняется здесь и сейчас.
Если всё ещё не понятно - начните с самых основ, и без всякого jquery. P.S. Чтобы "вызывалось один раз" - надо просто снять обработчик клика после исполнения. |
Aetae вы не понимаете о чем я говорю,и при чем здесь основы.Событие клик( как вы говорите когда-нибудь) произошло сейчас и значит переменная category_id должна инициализироваться каким-то значением.те. после клика category_id должна сохранить значение и это значение передаться в функцию getCategoriesByParent(category_id);
P.S if здесь не причем не работает как с ним так и без него тут скорее вопрос видимости переменных почитайте http://habrahabr.ru/post/78991/ |
:write: переменные сами должны реагировать на своё изменение и знать в каких функциях использованны и запускать их в момент своего изменения. ... о @!#
|
yintar,
Не знаю о чём ты там думаешь, но jquery.click(function(){ ... }) - это не клик "сейчас", а усложнённый внутри у упрощённый снаружи аналог навешивания обработчика на событие клика по элементу: elemen.onclick = function(){ ... } Потому и говорю: Цитата:
|
Часовой пояс GMT +3, время: 13:32. |