Меню без классических ссылок
Есть огромное древовидное (jquery.treeview) меню,
SEO задача переделать в нем классические ссылки, на ссылки вида: <span onclick="location.href='http://domen.ru/link';" title="Производитель имя">Имя производителя</span> Чтобы не иметь на странице тысячи внутряков. Обработчик классической ссылки:
var current = this.find("a").filter(function() {
return this.href.toLowerCase() == location.href.toLowerCase();
});
Соответственно вместо "a", пишем "span". А вот что написать вместо href ума не приложу??? title трогать нельзя, не красиво будет да и не по SEO-шному. |
<head>
<style>
[data-href]:hover {
cursor: pointer;
text-decoration: underline;
}
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
</head>
<body>
<div id="menu">
<span data-href="http://mail.ru" title="Производитель имя">Имя производителя</span>
</div>
<script>
$('#menu').on('click', '[data-href]', function () {
window.location = $(this).data('href');
});
</script>
</body>
|
к сожалению сайт не может корректно работать на jquery-1.9.1, только на jquery-1.7.2, а там не работает data-href
|
Перефразирую свой вопрос. Как из ссылки вида:
<span onclick="location.href='http://domen.ru/link';" title="Производитель имя">Имя производителя</span> Средствами JavaScript вытащить это http://domen.ru/link? |
действительно работает, только мне такое решение видимо не подходит. Так как за ним потянется переписывание всего jquery.treeview а там 250 строк.
|
Не работает. Наверно из-за id="menu". У меня один id на кучу ссылок.
|
Что не работает? Я обернул ссылки в блок id="menu" только для того, чтобы повесить один обработчик на все ссылки, а не множество. И все прекрасно работает. Если ты заменишь на
$('span[onclick]').on('click', function () { то так ты вешаешь на каждую ссылку обработчик
<head>
<style>
span[onclick]:hover {
cursor: pointer;
text-decoration: underline;
}
</style>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.2.js'></script>
</head>
<body>
<div id="menu">
<span onclick="location.href='http://domen.ru/link';" title="Производитель имя">Меню 1</span>
<span onclick="location.href='http://mail.ru/';" title="Производитель имя">Меню 2</span>
<span onclick="location.href='http://lenta.ru/';" title="Производитель имя">Меню 3</span>
</div>
<script>
$('#menu').on('click', 'span[onclick]', function () {
var data = $(this).attr('onclick').split("'");
alert(data[1]);
});
</script>
</body>
|
проблема в том, что меню jquery.treeview
http://jquery.bassistance.de/treevie...erendered.html имеет кучу своих заморочек и как только я делаю шаг влево или вправо, то меню перестает работать. вот кусок кода, который сравнивает ссылки для подсветки активного пункта меню:
var current = this.find("a").filter(function() {
return this.href.toLowerCase() == location.href.toLowerCase();
});
и я не могу его никак заменить Вашим кодом, ни полностью ни частично, меню перестает работать ветка схлапывается и не раскрывается. У меня меню в глубину до 3-го уровня, 1-ый и 3-ий уровни я победил, а вот 2-ой никак(( |
А с самого начала толком объяснить
var current = $('span[onclick]').filter(function () {
return $(this).attr('onclick').split("'")[1].toLowerCase() == location.href.toLowerCase();
});
|
| Часовой пояс GMT +3, время: 10:02. |