Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.03.2011, 09:39
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

onclick - пересечение событий.
Есть таблица состоящая из большого числа строк, при клике на строку срабатывает функция изменяющая цвет ее фона.

Проблема в том что если в строке есть гипперссылка, открывающая изображение в отдельном окне, то при клике по ней, помимо открытия окна с картинкой, строка помечается. Как избежать срабатывания события onclick, при нажатии на активные элементы внутри?

<tr id='1' onclick="lineon('1');">
<td><a href='../media//den.jpg' target="_blank">den.jpg</a></td>
<td>10.03.2011|<b>12:36</b></td>
</tr>

Последний раз редактировалось LRCenter, 16.03.2011 в 09:59.
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2011, 09:59
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

var target = event.target || event.srcElement;
if (target != this) return;


Добавить в onclick строки таблицы в начало.
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2011, 10:14
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Сделал. Все работает так же.

<tr id='1' onclick="var target = event.target || event.srcElement; if(target != this) return lineon('1');">
Ответить с цитированием
  #4 (permalink)  
Старый 16.03.2011, 11:10
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Как же сделать-то? Может перебить событие в строке другим событием в ячейке со ссылкой?
Ответить с цитированием
  #5 (permalink)  
Старый 16.03.2011, 11:46
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

можно сделать костыль
при клике по ссылки возвращать таблице те стили что по дефолту
только проверьте дебагером, что происходит раньше клик по ссылке или изменение цвета у таблицы
Ответить с цитированием
  #6 (permalink)  
Старый 16.03.2011, 12:37
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Да, ну нафиг. Проще вообще тогда не делать выделение при клике
Ответить с цитированием
  #7 (permalink)  
Старый 16.03.2011, 13:04
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Цитата:
Сделал. Все работает так же.
Ты не поставил точку с запятой.
Копируй мой код полностью.
Должно быть return; lineon() — т. е. return прерывает выполнение функции, записанной в onclick и lineon уже не вызывается.
Ответить с цитированием
  #8 (permalink)  
Старый 16.03.2011, 13:29
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Пробовал и так - код вообще перестает работать.
Ответить с цитированием
  #9 (permalink)  
Старый 16.03.2011, 13:51
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Кликни сначала по ссылке, а потом по блоку.

<html>
	<body>
		<div style='background: #CCCCCC; width: 200px; height: 200px' onclick='var target = event.target || events.srcElement; if (event.target != this) return; this.style.backgroundColor = "red";'>
			<a href='javascript://'>
				Click
			</a>
		</div>
	</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 16.03.2011, 14:05
Кандидат Javascript-наук
Отправить личное сообщение для LRCenter Посмотреть профиль Найти все сообщения от LRCenter
 
Регистрация: 22.06.2009
Сообщений: 117

Ага, это работает, но только с div-ом, а не с <tr>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание события onclick? kerranswell Events/DOM/Window 31 09.05.2011 21:20
onclick и <object> MCTrane Общие вопросы Javascript 3 23.12.2010 23:33
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03
Обработка onClick lliberty Общие вопросы Javascript 2 03.04.2010 22:54
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01