Javascript.RU

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

Конфликт скриптов
Как исправить конфликт двух скриптов?
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);

Но он почему то не работает, где я допустил ошибку?
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2014, 16:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

$.each($(".header-menu a, .sushi a") ...


Класс будет назначаться одинаковый, но это не проблема вовсе.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2014, 19:44
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от danik.js
$.each($(".header-menu a, .sushi a") ...
$("a[href='" + document.location.href + "']").addClass('sushi-active');

Зачем выбирать, а затем в цикле перебирать.
Может стоить сразу выбрать нужные
Ответить с цитированием
  #4 (permalink)  
Старый 11.12.2014, 06:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Poznakomlus, это не тоже самое. Как правило, такой подход не будет работать.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 11.12.2014, 11:54
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от danik.js
Как правило
Какое правило? Поясни
Вообще выборки типа
$('.cls')
- считаются не оптимизированными. Так пишут те, кто не понимает как происходит поиск по коллекции DOM элементов. Правильнее задавать хотя-бы элемент среди которых производиться поиск. К примеру
$('li.cls')

Работа с ссылками здесь вообще, отдельная история. Не стоит забывать что массив всех ссылок есть уже в
document.links
Ответить с цитированием
  #6 (permalink)  
Старый 11.12.2014, 12:24
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Начнем с того что задача подсветки активных пунктов решается на уровне CMS. Даже зассанная джумла это умеет делать. Автор видимо либо юзает херню какую-то, а не CMS, либо не в курсе как сконфигурировать.
Сообщение от Poznakomlus
Какое правило? Поясни
Все просто. location.href - абсолютный урл, включающий схему.
А в атрибут href как правило пишут относительный урл:

<a href="/">Home</a>
<a href="/about">About</a>


А вот свойство href уже содержит нормализованный абсолютный урл, с которым можно сравнивать location.href.
Хотя может jQuery это обыгрывает (надеюсь что нет - итак делает дохрена чего не просят).
Сообщение от Poznakomlus
считаются не оптимизированными
Кем? Тобой? Ссылку плиз. Погонял в хроме - вариант без тега работает в два раза быстрей. В любом случае на разницу можно только дрочить. Тут другое:
Сообщение от Poznakomlus
Так пишут те, кто не понимает как происходит поиск по коллекции DOM элементов
Так пишут те, кто знает, что привязываться к тегам - плохо.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 11.12.2014, 12:25
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Poznakomlus, ты меня огорчаешь
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 11.12.2014, 13:02
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от danik.js
Все просто. location.href - абсолютный урл, включающий схему.
А в атрибут href как правило пишут относительный урл:
Какое это отношение имеет к вопросу Т. С.
Если у него линк var url=document.location.href; и его так устраивает
Сообщение от danik.js
Кем? Тобой?
тут и смотреть не надо, видно количество проведенных итераций при разных подходах
Про скорость здесь комментировать не буду.
Сообщение от danik.js
привязываться к тегам - плохо
Не видишь здесь паранои в области привязки
$('li.cls')

и
$('.cls')

с каких делов ты li будешь менять? какие затраты будут на замену? насколько информативно $('li.cls') и $('.cls')?
что будет если добавят класс в элементе котором не надо обрабатывать. Таких причин и условий может быть ...
Ответить с цитированием
  #9 (permalink)  
Старый 11.12.2014, 13:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


if(url.indexOf(this.href)!=-1){}
Ответить с цитированием
  #10 (permalink)  
Старый 11.12.2014, 13:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Poznakomlus
Какое это отношение имеет к вопросу Т. С.
Наверное такое что твой код попросту не будет работать? И он вообще почти ни на одном сайте не будет работать. Или ты не считаешь это проблемой?
Сообщение от Poznakomlus
тут и смотреть не надо, видно количество проведенных итераций при разных подходах
Где видно? Куда смотреть? Как при большем числе итераций код отрабатывает быстрей?
Сообщение от Poznakomlus
Про скорость здесь комментировать не буду.
Какой ты загадочный. Ну раз начал гнуть свою линию, давай продолжай.

Или я правильно понимаю, что нужно использовать только такие селекторы, которые "считаются оптимизированными", даже если они работают медленней и менее практичны?

Твои доводы по li неубедительны и не подтверждаются в реальных проектах. Зайди на гитхаб и посмотри код популярных js-скриптов.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт скриптов? borus jQuery 0 19.05.2014 17:11
Конфликт скриптов freshcot jQuery 2 11.10.2013 01:42
Конфликт двух скриптов veatone jQuery 2 24.05.2013 21:02
Конфликт событий внешних скриптов. ryslan1 Events/DOM/Window 10 11.07.2012 20:35
Конфликт скриптов, хотя точно не знаю McLotos Элементы интерфейса 2 06.04.2011 11:34