Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2013, 13:35
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

Меню без классических ссылок
Есть огромное древовидное (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-шному.
Ответить с цитированием
  #2 (permalink)  
Старый 17.12.2013, 14:09
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 17.12.2013, 14:24
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

к сожалению сайт не может корректно работать на jquery-1.9.1, только на jquery-1.7.2, а там не работает data-href
Ответить с цитированием
  #4 (permalink)  
Старый 17.12.2013, 14:32
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

Перефразирую свой вопрос. Как из ссылки вида:

<span onclick="location.href='http://domen.ru/link';" title="Производитель имя">Имя производителя</span>


Средствами JavaScript вытащить это
http://domen.ru/link
?
Ответить с цитированием
  #5 (permalink)  
Старый 17.12.2013, 14:39
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

действительно работает, только мне такое решение видимо не подходит. Так как за ним потянется переписывание всего jquery.treeview а там 250 строк.
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2013, 16:28
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

Не работает. Наверно из-за id="menu". У меня один id на кучу ссылок.
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2013, 16:59
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Что не работает? Я обернул ссылки в блок 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>
Ответить с цитированием
  #8 (permalink)  
Старый 17.12.2013, 17:18
Интересующийся
Отправить личное сообщение для irkprin Посмотреть профиль Найти все сообщения от irkprin
 
Регистрация: 28.06.2011
Сообщений: 28

проблема в том, что меню 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-ой никак((

Последний раз редактировалось irkprin, 17.12.2013 в 17:21.
Ответить с цитированием
  #9 (permalink)  
Старый 17.12.2013, 17:45
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

А с самого начала толком объяснить
var current = $('span[onclick]').filter(function () {
      return $(this).attr('onclick').split("'")[1].toLowerCase() == location.href.toLowerCase();    
});

Последний раз редактировалось Vlasenko Fedor, 17.12.2013 в 17:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Запуск браузера (IE6 и выше) без "офорлмения" - без панелей, меню, строки состояния jett Events/DOM/Window 4 23.11.2011 15:58
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
меню в IE 6 без стилей AndreyT (X)HTML/CSS 1 15.04.2010 21:17
Некорректное отображение ссылок и бэкграундов в пунктах меню Lex4e Общие вопросы Javascript 4 13.02.2010 04:06