замена линков при клике
привет всем - поставили мне одну задачу ...
есть две ссылки- первая уже прописана в href и открывается в новом окну при клике (это работает), и после клика и после открытия в новом окне - в href должна поместиться вторая ссылка - и так столько сколько раз кликните на ссылку я кажется понимаю как оно должно работать ... логику, но на практике не могу его заставить заработать .... в общем - результатов + ошибок - нет ... помогите разобраться https://jsfiddle.net/rao1qptx/ <a target="_blank" class="link" href="http://www.ya.ru">LINK</a>
$(document).ready(function() {
$('.link').click(function() {
var first_url = 'http://www.ask.com'; // ссылка на аск
var second_url = 'http://www.ya.ru'; // ссылка на яндекс
var true_url = $(this).attr('href'); //помещаю ссылку которая есть на данный момент в href
link_sort(); // инициалізирую функцию
function link_sort() {
if (true_url == first_url) { //сравниваю силки
$(this).attr('href', second_url) // если не совпадают то ставим это в хреф
} else {
$(this).attr('href', first_url) // если не совпадают то ставим это в хреф
};
}
});
|
смысл ясен?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<a target="_blank" class="link" href="http://www.ya.ru">LINK</a>
<script>
var links = ['http://ya.ru', 'http://javascript.ru','http://google.com','http://github.com'];
document.querySelector('.link').onclick = function() {
if (links.length > 0) {
this.href = links.shift();
}
}
</script>
</body>
</html>
|
так себе +-
var links = ['http://ya.ru', 'http://javascript.ru','http://google.com','http://github.com'];- создаем массив
if (links.length > 0) {
this.href = links.shift();
}
- вот здесь не очень понимаю+ должно быть бесконечный перебор ссылок, а в Вашем примере он на github заканчивается |
zerofx,
что то вроде index=-1// глобальная if(index>links.length) index=-1; this.href=links[index++] |
// массив ссылок.
var links = [
'http://ya.ru',
'http://javascript.ru',
'http://google.com',
'http://github.com'
];
document.querySelector('.link').onclick = function() {
// получаем позицию ссылки из аттрибута data-linkpos и приводим к типу number
var linkPos = +this.getAttribute('data-linkpos');
// если это последняя ссылка в массиве, то сбрасываем позицию.
if (linkPos >= links.length) {
linkPos = 0;
}
// меняем ссылку
this.href = links[linkPos];
// увеличиваем значение data-linkspos на linkPos + 1
this.setAttribute('data-linkpos', linkPos + 1);
}
|
Цитата:
|
newtimebigtime, да, я чет во втором примере затупил. =)
поправил. |
Lemme - да разобрался, СПС!!!
и мне все равно интересно - уже просто хочу понять - мой вариант - имеет право на жизнь? Если так - то где там ошибка? почему он не работает |
Цитата:
Цитата:
|
Цитата:
а тут я Вас вообще не понял ... для меня Важно зромуты где здесь ошибка ... а не какой вариант лучше ... да Ваш вариант круче ... я не спорю - но все же мне интересно заставить свой вариант работать =) объясните что вы имеете в виду - link_sort $(this) === window |
| Часовой пояс GMT +3, время: 03:14. |