Web-инжиниринг

       

Click


Обработка события Click

Вообще говоря, обработчик события Click в современном JavaScript не нужен. Можно прекрасно обойтись URL-схемой "javascript", которая была специально придумана для перехвата события гипертекстового перехода. Обработчик onClick следует рассматривать как реликт, доставшийся в наследство от предыдущих версий языка, который поддерживается в "пожилых" версиях Netscape Navigator и Internet Explorer.

Основная задача обработчика данного события - перехват события гипертекстового перехода. Если функция обработки данного события возвращает значение true, то переход происходит, при значении false - переход не происходит:

Отменим переход в начало страницы описания события обработчика onClick

<a href=#click onClick="window.alert('No jump to #click');return false;">onClick</a>

А теперь дадим пользователю право выбора перехода в начало страницы посредством окна подтверждения:

<a href=#top onClick="return window.confirm('Do you wona to jump?');">перехода</a>

Обратите внимание на место применения функции window.confirm() - аргумент команды return. Логика проста: функция возвращает значение true или false, и именно оно подставляется в качестве аргумента. Если просто написать функцию без return, то ничего работать не будет.

Можно ли вообще обойтись одним обработчиком onClick без использования атрибута href? Видимо нет. Первое, что необходимо браузеру - это определение типа контейнера A. Если в нем есть только атрибут name, то это якорь, если присутствует атрибут href - ссылка. Это два разных объекта. Они имеют различные составляющие, в том числе и обработчики событий. В контексте текущего раздела нам нужна именно ссылка, т.е. контейнер A с атрибутом href. Проверим наше предположение:

<a id=red onClick="window.alert("kuku");return false;">



Нет атрибута href

</a>

Нет атрибута href.

Текст "Нет атрибута href" - это якорь. Обработчик на нем не работает, т.к. в него нельзя указать мышью.

<a href="" id=red onClick="window.alert('URL:'+this.href);return false;">

Нет атрибута href

</a>>

Нет атрибута href.

Теперь мы указали пустую ссылку(см. поле статуса). Содержание окна - это база URL.


начало страницы








u="u686.25.spylog.com";d=document;nv=navigator;na=nv.appName;p=1; bv=Math.round(parseFloat(nv.appVersion)*100); n=(na.substring(0,2)=="Mi")?0:1;rn=Math.random();z="p="+p+"&rn="+rn;y=""; y+=""; y+="
"; y+=""; d.write(y);if(!n) { d.write("








Содержание раздела