cancelBubble родительского дива
Имеется:
<div id="father" onmousedown="f1(event); return false;"> <div id="son" onclick="f2(1)">text<div><div id="son" onclick="f2(2)">text<div><div id="son" onclick="f2(3)">text<div> </div> Функция "f1" использует onmousemove для скроллинга. Требуется запретить "onclick" для элементов "son", если клик произошёл после выполнения этой функции, а не после клика на элементе. Что можно сделать? Пробовал <body onclick="return false;"> тогда клик на элементах son не выполняется. Совсем запутался, буду благодарен за любую помощь в решении задачи, спасибо =) |
почитайте для начала про ID элемента, он должен быть уникальный http://htmlbook.ru/html/attr/id
|
в данном случае это не играет роли, проблема заключается в клике в области "father" и как следствие срабатывание дочерних событий
|
создайте глобальную переменную.
в функции f1 изменяйте её на true в начале действия, и на false в конце. в функции f2 проверяйте, не равна ли глобальная переменная true. |
как создать глобальную переменную для двух разных функций в подключаемом файле .js?
|
Вы не имеете доступа к функциям ?
|
доступ имею, я около месяца только изучаю JavaScript =)
|
Тогда будет лучше, если Вы прочитаете эту статью : Внутренние механизмы работы переменных, замыкания
|
melky, спасибо за помощь, сейчас прочту и попробую последовать вашему совету =)
|
melky, попробовал в начало файла добавить:
var complete; в начале f1 добавил: complete=false; в конце, перед "return false;", добавил: complete=true; не помогло, клик всё равно происходит, зада сводится к разделению кликов по происхождению я так понимаю =) как это осуществить? |
Часовой пояс GMT +3, время: 21:49. |