Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отмена перехода по ссылке (https://javascript.ru/forum/events/42276-otmena-perekhoda-po-ssylke.html)

tolian_27 20.10.2013 14:09

Отмена перехода по ссылке
 
Есть 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 срабатывает). Как можно этого избежать? Чтобы после отмены удаления не происходил этот переход на стр-цу?

BETEPAH 20.10.2013 14:16

видимо, ссылка находится внутри tr и происходит всплытие события. Соответственно, чтоб этого не было надо запретить всплытие в ссылке.

tolian_27 20.10.2013 15:12

совершенно верно, ссылка находиться внутри tr по этому событие onClick на tr и происходит после отмены удаления

tolian_27 20.10.2013 16:15

Цитата:

Сообщение от BETEPAH (Сообщение 277301)
видимо, ссылка находится внутри tr и происходит всплытие события. Соответственно, чтоб этого не было надо запретить всплытие в ссылке.

Каким образом это можно сделать?

BETEPAH 20.10.2013 16:25

Цитата:

Сообщение от tolian_27
Каким образом это можно сделать?

event.stopPropagation ? event.stopPropagation() : event.cancelBubble=true;

Лень пример сочинять, а "песочницу" вы не сделали. Вот вчера подобное было http://javascript.ru/forum/events/42...tml#post277223

tolian_27 20.10.2013 17:47

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


Часовой пояс GMT +3, время: 16:28.