Функции в событиях
Читаю эту статью 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 = ..
" ? |
Цитата:
|
Nekromancer, начинаю думать, что все любители js немного извращенцы))
/*и тут весь форум закидыват меня тухлыми помидорами :)*/ |
Цитата:
|
Цитата:
|
trikadin, скажите, а эта обёртка вокруг моего любимого «костыля», только затем, чтобы event передать или есть ещё что-то?
Хм. Хотя из первоначального кода и без обёрток передаётся event. Намекните, зачем обёртки? |
Цитата:
<div style="width: 100px; height: 100px; background: red" id="div1"></div>
<div style="width: 100px; height: 100px; background: green; margin-top: 5px;" id="div2"></div>
<script>
var i= 4;
document.getElementById("div1").onclick=function(event){alert(i)};
document.getElementById("div2").onclick=(function(num){
return function(event){alert(num);}
})(i);
i= 100;
</script>
|
trikadin, понял, спасибо.
|
GuardCat, да было бы за что...
|
Цитата:
в функцию аргументы передаются через запятую в скобках!!! в чем проблема?????? |
Livanderiaamarum, научитесь писать без излишней жирности.
И сдерживайте свою агрессию. |
Цитата:
|
Цитата:
Но это затрудняет чтение, раздражает, вызывает негативные эмоции и сомнения в адекватности писавшего. Научитесь не выделять текст без особой на то необходимости. В вашем случае необходимости не было - подчёркивать смысловую нагрузку того предложения было незачем, и превратно понято без этого выделения оно быть не могло. Смекаешь? |
Цитата:
|
Цитата:
Цитата:
А гопников от языка тут не нужно. |
trikadin,
Это просто новый вид тролля, так сказать next level. Он троллит, но чёрт побери осознанно. И если бы ещё ему побольше адекватности, может быть сошёл бы за нормального человека. |
Цитата:
![]() спасибо( ... |
Цитата:
|
Livanderiaamarum,
"ты че вообще хочешь?", свою проблему я описал выше. ".. не нравится синтаксис языка или че???", очень даже нравится :) "в функцию аргументы передаются через запятую в скобках!!!", спасибо, я об этом подозревал) Я понимаю, что скорее всего я вас раздражаю своими глупыми вопросами. Но прошу, если они вам так не нравятся, то просто не заходите в тему и всё) Ведь я никого не заставляю дать мне объяснения, я лишь прошу тех кто может(хочет) помочь. |
Nekromancer,
"Он троллит, но чёрт побери осознанно.", а разве есть толли, которые тролят неосознанно?)) |
Цитата:
итог : цель озлоблена, получены лулзы => я тролль ; ну а т.к. я это делал неосознанно => я троллящий неосознанно :) |
Цитата:
|
Цитата:
|
Цитата:
http://webcache.googleusercontent.co...t=clnk &gl=ru |
Livanderiaamarum,
Линк не прочёл. Но видимо по этому вы считаете своим долгом быть троллем? П.С. Вот у меня например на работе человек осознанный тролль, он сидит в рабочее время и троллит на всяких форумах по PlayStation. Не могу понять какое моральное удовлетворение он от этого получает, но после этого он мне стал гораздо меньше нравится. |
он "энергетический вампир". ему на душе становится тепло и хорошо, когда он кого-то вынудит разозлиться/обидеться.
|
| Часовой пояс GMT +3, время: 06:16. |