[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Событие перехода по ссылке
N0ob
Всем Привет! Мне нужно отловить событие перехода по ссылке. То есть когда нажимаешь на ссылку выдаем допустим алерт с адресом, куда эта ссылка ведет. Есть, конечно, идея на все тэги a повесить событие онклик, но хотелось бы узнать, если отдельное событие в JS? Что то на подобии того же onclick, только когда кликаем именно на ссылку.
P.S Задал этот вопрос, потому что у меня на сайте не на всех ссылках срабатывает онклик на тэге a. Спрашивал "почему?" ответа так и не дали(
Winston
Нужно на onclick вешать, отдельного события нету.
Цитата (N0ob @ 10.09.2014 - 19:05)
P.S Задал этот вопрос, потому что у меня на сайте не на всех ссылках срабатывает онклик на тэге a. Спрашивал "почему?"

Возможно при нажатии на эти ссылки уже отрабатывает какой-то JS
sergeiss
Цитата (N0ob @ 10.09.2014 - 20:05)
Что то на подобии того же onclick, только когда кликаем именно на ссылку.

Ну так повесь такое событие... С помощью jQuery, например. Я вот так с ходу, посреди ночи, не напишу. Но это возможно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
alexbel2404
Применится ко всем ссылкам на странице. На jQuery.
$(document).ready(function() {
$('a').on('click', function(event){
event.preventDefault();
alert($(this).attr('href'));
});
}
N0ob
Winston,sergeiss так и делал. Но почему то редирект по ссылке всеравно не идет. Ссылка вот такого типа:
<a href="messages?pm=1">
<div
class="infoAuthor">
<img
src="/images/users_photos/rjbcSagIq-Q_tiny.jpg" width="50" height="50">
<span>
Петя Сидоров</span>
</div>
<div
class="PM_text">Первое сообщение</div>
</a>

alexbel2404 такой код у меня есть, но всеравно спасибо!
Winston
N0ob
Берем твой html и код alexbel2404 получаем http://jsfiddle.net/7tyc7txe/ происходит алерт, после этого идет переход по ссылке. Вывод - все работает, если у тебя не работает значит ищи в JS коде участок, который скорее всего блокирует переход.
N0ob
А что может заблокировать переход? Я искал код, где на тэг a вешается онклик, такого нет
N0ob
Я отключил все JS файлы от сайта. Результат тот же, но я заметил одну особенность. Если я наберу в адресной строке адрес страницы, в которой располагаются эти ссылки, и перейду по ней, то онклик срабатывает. А если я перейду по ссылке на эту страницу(эта страница так же грузиться html5 history), то онклик не срабатывает. Может проблема в коде?

$(document).ready(function(){
var thisUri = location.href;
$('a').on('click', function(event){
event.preventDefault();
targetLink = $(this).attr('href');

history.pushState({uri:targetLink}, null, targetLink);
loadPage(targetLink, thisUri);
});

//сразу задаем параметры для текущего состояния
history.replaceState({uri:thisUri}, null, thisUri);

$(window).bind('popstate', function(event) {
loadPage(history.state.uri, thisUri);
});


function loadPage (pagename, thisUri)
{
//log("Loading.....");
alert("Load");
var search = window.location.search.substr(1);
pagename = window.location.pathname.substr(1);
//alert(pagename);
var vars = search.split("&&");
var get = "";
if(vars.length)
{
get = new Array();
for(var i=0;i<vars.length;i++)
{
var var1 = vars[i].split("=");
get[var1[0]] = var1[1];
}
}

//alert(pagename.slice(1));
var pageMatches = pagename.match(/#(video|photo|album)\-([0-9])+$/);
var options;
//alert(pageMatches[2]);
//alert(pagename);

if(!pageMatches)
{
//log("Страница не принадлежит откытию фоток");

if(pagename == "" || pagename == "/")
{
pagename = "main";
}

$.ajax({
url : "/engine/ajax/loadPage.php",
type : "POST",
async : true,
dataType : "json",
data: {"pageName":pagename, "options":get},
success: function (data) {
if(data.success == true && data.load == true)
{
$('.content').html(data.content);
$('title').html(data.title);
currentUrl = thisUri;
}
else
{
alert("Страница "+pagename+" не существует");
}

}
,
error: function (a, b) {
alert("Ошибка: " + a.responseText);
}
}
);
}
}



}
);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.