|
Функции в событиях
Читаю эту статью 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:48. |
|