Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перехватить переход по ссылке из диве (https://javascript.ru/forum/misc/16198-perekhvatit-perekhod-po-ssylke-iz-dive.html)

iflight 29.03.2011 20:00

Перехватить переход по ссылке из диве
 
Всем привет) Подскажите пожалуйста как реализовать следующую задачу:
Есть див, в нем блок ссылок, при переходе на любую из этих ссылок надо выполнять некоторые действия. Причем к самим ссылкам доступа нет(все содержимое дива подгружается с помощью другого скрипта).
Подскажите как реализовать, заранее спасибо)

melky 29.03.2011 20:47

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


при переходе на ссылку???

типа, есть в диве ссылка /about.html , ты переходишь на неё (например, ввёл в адресную строку браузера. но не нажал.)

или при нажатии на неё?

если мне правильно представляется, вся суть будет в этом коде (jQuery)

$("div a").click(function(){
// совершать определенные действия
})

Sweet 29.03.2011 20:51

Цитата:

Сообщение от iflight
к самим ссылкам доступа нет

Это не так.
Вот пример, может поможет:
<div id="someDiv">
  <a href="http://www.google.ru/">Google</a><br>
  <a href="http://ru.wikipedia.org/wiki/Заглавная_страница">Wikipedia</a>
</div>
<script>
// Берем нужный div и все ссылки в нем:
var div = document.getElementById('someDiv'),
    links = div.getElementsByTagName('a');

// Вот таким нехитрым способом останавливаем переход по ссылкам:
for(var i = 0, l = links.length; i < l; i++)
  links[i].onclick = function(){
    return false;
  };

// А теперь делаем, что нам надо. Например:
div.onclick = function(event){

// Берем кроссбраузерно событие и элемент, на котором оно произошло:
  if(!event) event = window.event;
  var target = event.target || event.srcElement;

// Проверяем, по ссылки ли кликнули:
  if(target.tagName.search(/a/i) === -1) return;

// Ну и собственно, вот ради чего все это:)
  if( confirm('Вы действительно хотите перейти по ссылке: ' + target.href) )
    location = target.href;
};
</script>

Dorian_bs 30.03.2011 02:03

iflight, опишите, какие вам нужно выполнять действия


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