Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Где произошло событие


Автор: sanhai 24.10.2011, 21:31
Подскажите кто знает вот код html
<div id="knopki">
<form name="knop">
<input type="button" name="dver_v_a1" value="дверь в а1" onClick="hiden_dver_menu()">
<input type="button" name="dver_v_a2" value="дверь в а2" onClick="hiden_dver_menu()">
<input type="button" name="dver_v_b1" value="дверь в b1" onClick="hiden_dver_menu()">
</form>
</div>

как получить значение value элемента в котором произошло событие 

function hiden_dver_menu() {
var name_dver = имя элемента.value;
document.write(name_dver);
}
ну типо того вроде как this надо применить тока я не разберусь как

Автор: magelan 24.10.2011, 22:11
Код

<div id="knopki">
<form name="knop">
<input type="button" name="dver_v_a1" value="дверь в а1" onClick="hiden_dver_menu(event, this)">
<input type="button" name="dver_v_a2" value="дверь в а2" onClick="hiden_dver_menu(event, this)">
<input type="button" name="dver_v_b1" value="дверь в b1" onClick="hiden_dver_menu(event, this)">
</form>
</div>


Код

function hiden_dver_menu(e, obj)
{
    e = e || window.event;
    var name_dver = obj.value;
    var name_dver2 = (e.target || e.srcElement).value;
    alert( 'from this: ' name_dver + '\n from event:'+ name_dver2);
}

Автор: sanhai 24.10.2011, 22:13
Спасибо большое а пояснить не поленитесь?

Вы в функции указали два аргумента первый это тип события а второй this что он обозначает и как работает?

Автор: magelan 24.10.2011, 22:19
первый параметр - событие для всех браузеров, кроме MSIE, для него мы вычитываем событие из окна.
часто объект событие важнее остальных параметров, что и показано, т.е. его достаточно, чтобы получить вашу кнопку.
this - это this, если в каком либо теге вы передаете this в функцию, то вы по сути передаете этот тег, собственно то, что вы и хотели...

можно убрать 1й параметр, но на практике event нужнее.

Автор: sanhai 25.10.2011, 21:12
Со скриптом разобрался но это не то что я хотел подскажите, мне нужно получить имя тега инпут в котором произошло событие а в вашем скрипте я получаю имя формы, да и если можете посоветуйте умную книжку хотя бы название а то я прочитал одну (носорог вродебы) но там про это не написано и конструкции со скобочками интересные. Буду очень признателен

Автор: sanhai 25.10.2011, 21:31
Извиняюсь за коломбур вообщем победил спасибо большое ваш скрипт очень помог. Но вопрос про книжку все равно актуален

Автор: magelan 26.10.2011, 00:13
В браузере есть три кита:
Окно браузера
События
DOM

Сам язык сценариев не важен синтаксис поднимается за неделю с помощью гугла и форумов. 
Основной интерес представляет DOM-модель, с которой у всех почему-то проблемы. Jquery, например, являет собой подмену DOM, чем, имхо, осложняет людям процесс изучения.

Что почитать, не скажу даже, я пользовался w3c и MSDN. 

Автор: Lols 26.10.2011, 01:41
Нужная вещь, спасибо за разъяснение.

Автор: sanhai 26.10.2011, 21:01
Большое спасибо за разъяснения но похоже я опять выразился не правильно. Мне интересно не только события а весь яваскрипт с возможными конструкциями и хитростями я только одну книжку прочитал за вторую взялся но она больно старая бросил так как там ничего нового а вот конструкции со скобочками меня удивили. Мож что подскажите. 
Спасибо большое за ответы очень помогли. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)