Конфликт скриптов
Как исправить конфликт двух скриптов?
jQuery(document).ready(function($) { var url=document.location.href; $.each($(".header-menu a"),function(){ if(this.href==url){$(this).addClass('menu-active');}; }); })(jQuery); Хочу продублировать этот скрипт, пишу вот так: jQuery(document).ready(function($) { var link=document.location.href; $.each($(".sushi a"),function(){ if(this.href==link){$(this).addClass('sushi-active');}; }); })(jQuery); Но он почему то не работает, где я допустил ошибку? |
$.each($(".header-menu a, .sushi a") ... Класс будет назначаться одинаковый, но это не проблема вовсе. |
Цитата:
$("a[href='" + document.location.href + "']").addClass('sushi-active'); Зачем выбирать, а затем в цикле перебирать. Может стоить сразу выбрать нужные |
Poznakomlus, это не тоже самое. Как правило, такой подход не будет работать.
|
Цитата:
Вообще выборки типа $('.cls')- считаются не оптимизированными. Так пишут те, кто не понимает как происходит поиск по коллекции DOM элементов. Правильнее задавать хотя-бы элемент среди которых производиться поиск. К примеру $('li.cls') Работа с ссылками здесь вообще, отдельная история. Не стоит забывать что массив всех ссылок есть уже в document.links |
Начнем с того что задача подсветки активных пунктов решается на уровне CMS. Даже зассанная джумла это умеет делать. Автор видимо либо юзает херню какую-то, а не CMS, либо не в курсе как сконфигурировать.
Цитата:
А в атрибут href как правило пишут относительный урл: <a href="/">Home</a> <a href="/about">About</a> А вот свойство href уже содержит нормализованный абсолютный урл, с которым можно сравнивать location.href. Хотя может jQuery это обыгрывает (надеюсь что нет - итак делает дохрена чего не просят). Цитата:
Цитата:
|
Poznakomlus, ты меня огорчаешь :-?
|
Цитата:
Если у него линк var url=document.location.href; и его так устраивает Цитата:
Про скорость здесь комментировать не буду. Цитата:
$('li.cls') и $('.cls') с каких делов ты li будешь менять? какие затраты будут на замену? насколько информативно $('li.cls') и $('.cls')? что будет если добавят класс в элементе котором не надо обрабатывать. Таких причин и условий может быть ... |
:write:
if(url.indexOf(this.href)!=-1){} |
Цитата:
Цитата:
Цитата:
Или я правильно понимаю, что нужно использовать только такие селекторы, которые "считаются оптимизированными", даже если они работают медленней и менее практичны? :D Твои доводы по li неубедительны и не подтверждаются в реальных проектах. Зайди на гитхаб и посмотри код популярных js-скриптов. |
Часовой пояс GMT +3, время: 20:04. |