Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.12.2014, 16:59
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

передача аргументов в функцию
Всем привет
не понимаю что за конченный язык этот 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),но не передается.
Вопрос:почему????????????????????????? ?????????????????????????????????????????????????? ???????????????????????????????????????
Ответить с цитированием
  #2 (permalink)  
Старый 09.12.2014, 17:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

yintar,
то есть перенести 7 строку в 10 вам трудно?
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2014, 17:09
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

не трудно я так и делал.Просто мне нужно чтобы getCategoriesByParent(category_id) вызывалась один раз после того как будет известно значение category_id;
я не понимаю почему так не работает
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2014, 17:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Потому что клик - это событие, которое возникнет когда-нибудь, или не возникнет вовсе, а if ваш исполняется здесь и сейчас.
Если всё ещё не понятно - начните с самых основ, и без всякого jquery.

P.S. Чтобы "вызывалось один раз" - надо просто снять обработчик клика после исполнения.
__________________
29375, 35

Последний раз редактировалось Aetae, 09.12.2014 в 17:36.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2014, 17:48
Аспирант
Отправить личное сообщение для yintar Посмотреть профиль Найти все сообщения от yintar
 
Регистрация: 04.08.2014
Сообщений: 42

Aetae вы не понимаете о чем я говорю,и при чем здесь основы.Событие клик( как вы говорите когда-нибудь) произошло сейчас и значит переменная category_id должна инициализироваться каким-то значением.те. после клика category_id должна сохранить значение и это значение передаться в функцию getCategoriesByParent(category_id);
P.S if здесь не причем не работает как с ним так и без него тут скорее вопрос видимости переменных почитайте http://habrahabr.ru/post/78991/
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2014, 18:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

переменные сами должны реагировать на своё изменение и знать в каких функциях использованны и запускать их в момент своего изменения. ... о @!#
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2014, 19:29
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

yintar,
Не знаю о чём ты там думаешь, но jquery.click(function(){ ... }) - это не клик "сейчас", а усложнённый внутри у упрощённый снаружи аналог навешивания обработчика на событие клика по элементу: elemen.onclick = function(){ ... }
Потому и говорю:
Цитата:
и без всякого jquery.
А хабр по теме js тебе рано читать, у тебя вообще нет представления о сём языке.
__________________
29375, 35

Последний раз редактировалось Aetae, 09.12.2014 в 19:32.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
передача аргументов yintar Элементы интерфейса 5 09.12.2014 22:05
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
Передача параметров с сервера в функцию mikel Events/DOM/Window 2 29.08.2011 21:18
передача динамических данных в функцию Ruah Общие вопросы Javascript 4 02.09.2009 22:04