Обработка события Click
У гипертекстовой ссылки помимо URL, указанного в атрибуте HREF, можно указать действия, которые браузер должен выполнить, когдапользователь кликнет по данной ссылке, перед тем, как перейти по указанному URL. Соответствующая программа JavaScript называетсяобработчиком события Click и помещается в атрибут onClick контейнера <A>. Если обработчик события возвращает значение false(это можно реализовать путем помещения в конец обработчика команды return false ), то переход по адресу URL, указанному в атрибуте HREF, не будет совершен. Когда обработчик возвращает true или не возвращает ничего, после выполнения обработчика события будет совершен переход по адресу URL. Например:
<A onClick="return confirm('Хотите посетить сайт INTUIT?')" HREF="http://www.intuit.ru/">Перейти на сайт INTUIT</A>В этом примере confirm() возвращает либо true, либо false, в зависимости от того, на какую кнопку нажмет пользователь в предложенном запросе. Соответственно, переход на указанный адрес либо произойдет, либо нет. Если бы мы в этом примере опустилислово return, то обработчик события ничего бы не возвращал (независимо от действий пользователя на запрос confirm ) и переход на указанный URL совершался бы в любом случае.
Если в атрибуте ссылки (например, HREF, onClick и т.п.) пишется JavaScript-код, в котором надо сослаться на свойство или метод этойссылки, то, как и в случае форм, можно пользоваться сокращенной записью - не указывать объект данной ссылки, либо (для большей ясности кода) вместо него писать this. Например, пусть у нас имеется 5-я ссылка в документе, и мы хотим в ее обработчикеonMouseOver сослаться на свойство href данной ссылки, или вызвать метод click() данной ссылки. Тогда в этом контексте вместоdocument.links[4].href можно писать this.href или просто href, а вместо document.links[4].click() писать this.click()или просто click(). Это не только укорачивает код, но и избавляет нас от необходимости привязываться к конкретному номеру данной ссылки, который в любой момент может измениться.
И последнее замечание. Часто для того, чтобы скрипт запускался, когда посетитель кликает ссылку, программисты пишут что-то такое:
<A HREF="#" onClick="программа JavaScript">...</A><A HREF="javascript:void(0)" onClick="программа JavaScript">...</A><A HREF="javascript: программа JavaScript">...</A>При этом код выполняется и, на первый взгляд, все нормально. Но на второй взгляд становится видно, что после клика на ссылку могут прекратить грузиться недогруженные элементы страницы (большие картинки и т.п.), останавливаются анимированные GIF'ы и, быть может, происходит что-то еще из этой серии. Все дело тут в том, что браузер считает клик пользователя по ссылке переходом на другую страницу, поэтому полагает, что заботиться о текущей странице больше не надо, ведь она с секунды на секунду заменится новой. Решение здесь такое: если вы рассчитываете при клике пользователя по ссылке оставить его на текущей странице, то не забудьте прописать выходreturn false из обработчика события onClick, например:
<a href="#" onClick="программа JavaScript; return false;">В этом случае, после вызова программы JavaScript, выполнение клика по ссылке прекратится, поэтому браузер не будет считать, что произошел переход на другую страницу.
Дата добавления: 2016-05-25; просмотров: 345;