Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.03.2017, 18:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

laimas,
будет уже выигрыш по простоте добавления/удаления элемента -- ненадо будет ничего менять в скрипте.
Ответить с цитированием
  #12 (permalink)  
Старый 06.03.2017, 19:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
будет уже выигрыш по простоте добавления/удаления элемента
Ну это не всегда обязательно так будет, в скрипте можно вообще ничего не менять используя и ID, и просто иерархию набора, и т.п., это уже зависит от многих факторов.
Ответить с цитированием
  #13 (permalink)  
Старый 06.03.2017, 19:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

laimas,
надо делать тест что быстрее?
$(e.target).closest("#treeview, #CategoryTitle, #treeviewDropdownBtn")


или
$(e.target).closest(".noClose")
Ответить с цитированием
  #14 (permalink)  
Старый 06.03.2017, 20:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
надо делать тест
нет, это уже от лукавого, привязываться к конкретному случаю. Да и какая разница в данном случае, и по классу, и по ID поиск закончится при первом же совпадении ибо так заказано.
Ответить с цитированием
  #15 (permalink)  
Старый 06.03.2017, 20:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

laimas,
не понимаю ваших сообщений в этой теме, для меня однозначно $(e.target).closest(".noClose") лучше, если вам удобно иначе, дело ваше.
Ответить с цитированием
  #16 (permalink)  
Старый 06.03.2017, 20:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990



Я вот о чем. В данном случае, с closest(), пофиг как ищется по классу ли или по ID, метод определяет действия - нашли первое совпадение и успокоились. То есть ну выиграли только в сокращении записи, не более.

А теперь представим, что речь идет о наборе именно уникальных элементов. Пусть этот набор размещен так:

<body><div><div id=a1 class=as><div id=a2 class=as><div id=a3 class=as>

и требуется получить этот набор являющийся родителями, то есть используем .parents(). Если в этом случае искать по селектору класса .parents('.as'), то будут опрошены элементы вплоть до body, а если по id, .parents('#a1, #a2, #a3'), то поиск остановится после нахождения третьего в наборе, ибо ID уникально и нечего более искать выше.
Ответить с цитированием
  #17 (permalink)  
Старый 06.03.2017, 20:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

laimas,
в обоих случая будет искать до document не останавливась
Ответить с цитированием
  #18 (permalink)  
Старый 06.03.2017, 20:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
в обоих случая будет искать до document
Это почему?
Ответить с цитированием
  #19 (permalink)  
Старый 06.03.2017, 21:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

laimas,
так устроен parents --- нужен break тогда parentsUntil
Ответить с цитированием
  #20 (permalink)  
Старый 06.03.2017, 21:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
так устроен parents
А смысл? В селекторе указано три, причем эти три это уникальные значения, следовательно искать далее глупо и break вроде бы уже подразумевается. А вот если по классу тогда и нужен parentsUntil, чтобы не искать выше. Или я не прав?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07
Помогите подключить функцию в onclick moloko Элементы интерфейса 10 30.07.2013 08:27
передать анонимную функцию, вызывающую другую функцию с нужными параметрами Ваяс Общие вопросы Javascript 5 21.02.2013 20:12
Выполнить функцию заранее неизвестную Neokortex jQuery 2 13.02.2012 12:41
Через argument.callee не получается переписать функцию. Jurasmi Общие вопросы Javascript 2 23.03.2011 12:54