Обработка события 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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.