Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Компактно переписать функцию (https://javascript.ru/forum/misc/67753-kompaktno-perepisat-funkciyu.html)

рони 06.03.2017 18:25

laimas,
будет уже выигрыш по простоте добавления/удаления элемента -- ненадо будет ничего менять в скрипте.

laimas 06.03.2017 19:02

Цитата:

Сообщение от рони
будет уже выигрыш по простоте добавления/удаления элемента

Ну это не всегда обязательно так будет, в скрипте можно вообще ничего не менять используя и ID, и просто иерархию набора, и т.п., это уже зависит от многих факторов.

рони 06.03.2017 19:25

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


или
$(e.target).closest(".noClose")

laimas 06.03.2017 20:24

Цитата:

Сообщение от рони
надо делать тест

нет, это уже от лукавого, привязываться к конкретному случаю. Да и какая разница в данном случае, и по классу, и по ID поиск закончится при первом же совпадении ибо так заказано. :)

рони 06.03.2017 20:28

laimas,
не понимаю ваших сообщений в этой теме, для меня однозначно $(e.target).closest(".noClose") лучше, если вам удобно иначе, дело ваше.

laimas 06.03.2017 20:39

:)

Я вот о чем. В данном случае, с 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 уникально и нечего более искать выше.

рони 06.03.2017 20:54

laimas,
в обоих случая будет искать до document не останавливась

laimas 06.03.2017 20:56

Цитата:

Сообщение от рони
в обоих случая будет искать до document

Это почему?

рони 06.03.2017 21:15

laimas,
так устроен parents --- нужен break тогда parentsUntil

laimas 06.03.2017 21:22

Цитата:

Сообщение от рони
так устроен parents

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


Часовой пояс GMT +3, время: 16:14.