Меню без классических ссылок
Есть огромное древовидное (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, время: 07:27. |