|
Функции в событиях
Читаю эту статью http://javascript.ru/tutorial/events...voystvo-obekta
Там есть код:
function doSomething() {
alert('Спасибо')
}
document.getElementById('button').onclick = doSomething
Но вот появился вопрос, что если в функцию doSomething() мне нужно передать несколько аргументов? Как быть? Делать постоянно так:
document.getElementById('button').onclick = function() { doSomething('значение_аргумента'); }
Это мне какой-то кастыль напоминает.. Есть ли другие варианты? |
Цитата:
elem.onclick= (function(arg1, arg2, arg3){ //создаём анонимную ф-цию, передаём ей обработчики
return function(event){ // возвращаем ф-цию, она-то и будет обработчиком
return doSmth(event, arg1, arg2, arg3); // выполняем нужную ф-цию, передаём ей event и нужные аргументы
};
})(1, 2, 3); // вызываем созданную нами анонимную ф-цию, передавая ей нужные аргументы
|
trikadin,
ойёй! Ужас!!1!1! Думаю теперь, что |
Цитата:
А тот код, что я вам скинул - тоже построен на замыканиях. Ещё вы можете использовать библиотеки/фреймворки и передавать аргументы в обработчики с помощью них) |
trikadin,
не люблю пользоваться фрэймворками.. Люблю свои велосипеды писать) |
Цитата:
function doSomething(arg) {
arg = arg || 'Спасибо!';
alert(arg);
}
doSomething('hello!');
doSomething();
|
Цитата:
Хотя у кого как) Обычно - именно так. |
Цитата:
|
Цитата:
|
Цитата:
document.getElementById('button').onclick = ..
" ? |
| Часовой пояс GMT +3, время: 04:34. |
|