Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.08.2011, 23:50
Аватар для Gremlin
Интересующийся
Отправить личное сообщение для Gremlin Посмотреть профиль Найти все сообщения от Gremlin
 
Регистрация: 12.08.2011
Сообщений: 15

В общем, единственный найденный мной способ передачи параметра в функцию-колбэк вот такой.

Common.areYouSure('Предепреждение',
                                        'Текст вопроса?',
                                        'Удалить ', 'не удалять',
                                        function(){Groups.destroy(id_group)});

Вся соль в этой строчке: если параметром передавать это, то колбэк запускается по наступолению события, что и требовалось.
function(){Groups.destroy(id_group)}


а если параметром передавать это, то колбэк запускается сразу при загрузке страницы, что изначально было проблемой.
Groups.destroy(id_group)


У меня все таким образом завелось. Пардон за бурю в стакане )))

Да, вот еще что: пример сделать не могу в рамках этого форума, т.к. запустить можно либо отдельно ХТМЛ, либо отдельно Яваскрипт. А у меня колбэк должен привязываться к событию онКлик на элемент ХТМЛ.
Ответить с цитированием
  #12 (permalink)  
Старый 12.08.2011, 23:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

areYouSure: function(title, question, okText, cancelText, myCallback, args) {
//.... многа кода
    sureBox.find('#ok').bind('click', function() {
        myCallback.apply( this, args );
    });
// .... еще кода
}

function mycallbackfunc() {
    alert( Array.prototype.slice.call( arguments, 0 ) );
}

Common.areYouSure('blabla', 
                           'blabla blabla', 
                           'Удалить blabla', 'Отмена blabla', 
                           mycallbackfunc, [param1, param2, ... и т.д. ]);
Ответить с цитированием
  #13 (permalink)  
Старый 13.08.2011, 00:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Gremlin
запустить можно либо отдельно ХТМЛ
он же и яваскрипт запускает тот что в теге скрипт
Ответить с цитированием
  #14 (permalink)  
Старый 13.08.2011, 00:04
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<div>Я просто HTML</div>
<script type="text/javascript">
   alert("А я JavaScript =)");
</script>
Ответить с цитированием
  #15 (permalink)  
Старый 13.08.2011, 02:00
Аватар для Gremlin
Интересующийся
Отправить личное сообщение для Gremlin Посмотреть профиль Найти все сообщения от Gremlin
 
Регистрация: 12.08.2011
Сообщений: 15

Блин, точно, можно ))
Ответить с цитированием
  #16 (permalink)  
Старый 13.08.2011, 03:01
Аватар для Gremlin
Интересующийся
Отправить личное сообщение для Gremlin Посмотреть профиль Найти все сообщения от Gremlin
 
Регистрация: 12.08.2011
Сообщений: 15

Сделал как в посте 12. Сделал по образу и подобию с 1-й по 7-ю строки и с 13-й по 16-ю. Так тоже работает areYouSure стала немножечкого запутанее выглядеть, но зато её вызов стал куда приятнее Нагляднее варианта ещё не встречал.

Только вот эта функция взорвала мозг:
function mycallbackfunc() {
    alert( Array.prototype.slice.call( arguments, 0 ) );
}

У нее в скобках не указаны входящие аргументы: получается что при использовании apply входящие аргументы могут не указываться в функции? Они прямо внутрь нее без указания залетают что-ли?

И что эта за конструкция внутри алерта такая убийственная???
Насколько я понял (предварительно погугливши), ее задача превратить полученный обьект с параметрами в обычный массив для возможности дальнейшего его вывода. Но вот главная непонятка: что это за параметр такой arguments? Это какая-то зарезервированная входящая переменная(обьект), в которой находятся все переданные call-ом параметры? Думаю что да, но не уверен. Пробовал вставлять эту строку в любую из своих вызываемых функций - она действительно выводит список аргументов.


И следовательно напрашивается новый вопрос: как лучше и правильнее получать аргументы внутри вызываемой функции: через указание аргументов в скобках после слова function, или получать при помощи этого хитрого обьекта arguments, манипуляции над которым проводятся в строке 10?

Последний раз редактировалось Gremlin, 13.08.2011 в 03:20.
Ответить с цитированием
  #17 (permalink)  
Старый 13.08.2011, 07:06
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Gremlin
в которой находятся все переданные call-ом параметры? Думаю что да, но не уверен.
Можешь быть уверенным =)
Сообщение от Gremlin
через указание аргументов в скобках после слова function, или получать при помощи этого хитрого обьекта arguments
А это уже от желания зависит )
Ответить с цитированием
  #18 (permalink)  
Старый 13.08.2011, 08:54
Аватар для Gremlin
Интересующийся
Отправить личное сообщение для Gremlin Посмотреть профиль Найти все сообщения от Gremlin
 
Регистрация: 12.08.2011
Сообщений: 15

Огромное спасибо за помощь Все таки удалось понять друг-друга. Буду писать дальше.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача параметров javascript между iframe и документом. freedon Events/DOM/Window 8 05.05.2011 16:29
Передача параметров в JS xASM AJAX и COMET 6 13.12.2010 17:57
передача параметров по ссылке KOLANICH Общие вопросы Javascript 2 14.06.2010 15:25
node.js передача параметров серверу ,пример Kilowatt Серверные языки и технологии 1 12.04.2010 19:18
передача параметров функции underW Общие вопросы Javascript 2 04.04.2009 23:03