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