Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2013, 13:09
Интересующийся
Отправить личное сообщение для tolian_27 Посмотреть профиль Найти все сообщения от tolian_27
 
Регистрация: 24.10.2010
Сообщений: 16

Отмена перехода по ссылке
Есть html-таблица - объектов Каталога недвижимости. Каждая строка (<tr></tr>) - это объект.
1.При нажатии на строку - должна открываться страница объекта. Делается это так:

<tr id="tr0" onclick="location.href='/site.ru/catalog/object80'"></tr>


2.Для админа есть дополнительный столбец, в нем отображаются кнопки удаления, снятия с публикации:

<a href="http://site.ru/catalog/object80?admin=1&task=delete" class="admin_btns admin_delete" onClick="return confirmDelete();"></a>

<script type="text/javascript">
function confirmDelete() {
	if (confirm("Удалить этот объект?")) {
		return true;
	} else {
		return false;
	}
}
</script>


Все замечательно работает. Но есть нюанс: нажимаем на ссылку "удалить", появляется окно подтверждения удаления. Если НЕ подтверждаем - то удаления не происходит, НО происходит переход по ссылке на стр-цу объекта /site.ru/catalog/object80 (событие OnClick срабатывает). Как можно этого избежать? Чтобы после отмены удаления не происходил этот переход на стр-цу?
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2013, 13:16
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

видимо, ссылка находится внутри tr и происходит всплытие события. Соответственно, чтоб этого не было надо запретить всплытие в ссылке.
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2013, 14:12
Интересующийся
Отправить личное сообщение для tolian_27 Посмотреть профиль Найти все сообщения от tolian_27
 
Регистрация: 24.10.2010
Сообщений: 16

совершенно верно, ссылка находиться внутри tr по этому событие onClick на tr и происходит после отмены удаления
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2013, 15:15
Интересующийся
Отправить личное сообщение для tolian_27 Посмотреть профиль Найти все сообщения от tolian_27
 
Регистрация: 24.10.2010
Сообщений: 16

Сообщение от BETEPAH Посмотреть сообщение
видимо, ссылка находится внутри tr и происходит всплытие события. Соответственно, чтоб этого не было надо запретить всплытие в ссылке.
Каким образом это можно сделать?
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2013, 15:25
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от tolian_27
Каким образом это можно сделать?
event.stopPropagation ? event.stopPropagation() : event.cancelBubble=true;

Лень пример сочинять, а "песочницу" вы не сделали. Вот вчера подобное было Отличить клик по нераскрытому select'у от клика по раскрытому
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2013, 16:47
Интересующийся
Отправить личное сообщение для tolian_27 Посмотреть профиль Найти все сообщения от tolian_27
 
Регистрация: 24.10.2010
Сообщений: 16

thanks, работает, за одним узнал для себя о всплытиях http://learn.javascript.ru/bubbling-and-capturing
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо в ссылку меню адрес считывать из БД в момент перехода. andreydial Элементы интерфейса 18 14.05.2013 15:23
Как сделать пункт в выпадающем списке по умолчанию, после перехода по ссылке? Damian Элементы интерфейса 18 24.09.2012 17:17
отмена перехода табом на input Jeremen Events/DOM/Window 12 23.08.2012 16:50
имитация перехода по ссылке kalisha Events/DOM/Window 2 30.01.2010 16:10
Механизм перехода по ссылке пользователем и переадресация. Pluto Общие вопросы Javascript 10 07.09.2009 14:06