Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   AddEventListener для массива (https://javascript.ru/forum/events/39658-addeventlistener-dlya-massiva.html)

Valdemor 07.07.2013 20:52

jQuery же тоже написан на javascript. Он не использует каких-то инопланетных технологий, поэтому - состоит из костылей!)
Я так осваиваю язык, не используя jQuery (я хочу научится и писать на чистом javascript, и не прибегать к jQuery (я его, кстати, немножко презираю с тех пор, когда весь мой код с live-методами нужно было переписывать на on...)).

danik.js 07.07.2013 21:04

Цитата:

Сообщение от Valdemor
состоит из костылей!

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

Цитата:

Сообщение от Valdemor
(я его, кстати, немножко презираю с тех пор, когда весь мой код с live-методами нужно было переписывать на on...)

Сколько лет прошло с момента объявления метода live устаревшим до его дропа? Чем тебе угрожали когда ты не по своей воле обновлял библиотеку jQuery?

Valdemor 07.07.2013 21:38

Новостей по этому поводу я не видел, да и смысла особого удалять live нет - синтаксис практически одинаковый.
А так, функционал расширивается. Когда-нибудь, возможности jQuery подошли бы к новому уровню и смысла использовать старую версию ради одной функции не будет...

Valdemor 07.07.2013 22:33

Цитата:

Сообщение от danik.js (Сообщение 260761)
if (target.matches('div#menu ul#add [name="my"]')){
  // do stuff
}

Но это по спецификации. В реале же нужно использовать webkitMatchesSelector || mozMatchesSelector || msMathesSelector || oMatchesSelector (http://caniuse.com/matchesselector)
Кроме того, нет никакого смысла проверять контекст элемента, имеющего id, так что ваш пример плохой.

В jQuery есть кроссбраузерный метод проверки на соответствие селектору, но даже он вам не понадобится, так как в jQuery есть удобный способ делегирования обработки событий.

Нет, этот способ не подходит. target - элемент. Как мне узнать всё, сплошь до name родителя?

danik.js 08.07.2013 07:26

Цитата:

Сообщение от Valdemor
target - элемент

Это к чему вобще сказано?
Цитата:

Сообщение от Valdemor
Как мне узнать всё, сплошь до name родителя

var parentName = target.parentNode.name;

Valdemor 08.07.2013 21:01

Цитата:

Сообщение от nasqad (Сообщение 260841)
Не хочу вас разочаровывать но за полтора года осваивания вы все еще спрашиваете совета в задачах первого дня обучения.

Я изучал другие языки, а о javascript забыл.
Цитата:

Сообщение от danik.js (Сообщение 260869)
Это к чему вобще сказано?

К тому, что твой совет насчет matches не подходит - у меня есть тег, но никак не строка. Кстати, функция matches не существует.
Цитата:

Сообщение от danik.js (Сообщение 260869)
var parentName = target.parentNode.name;

Но у меня же строка не только с параметрами тегов! У меня там могут быть id'ы, классы, имена, селекторы. Мне их выделять при помощи регулярного выражения и добавить это в строку? Не многова-то ли выходит?

danik.js 08.07.2013 21:19

Цитата:

Сообщение от Valdemor
К тому, что твой совет насчет matches не подходит - у меня есть тег, но никак не строка.

Ты очень странный человек, так что спорить не буду. Ты спросил как проверять target - я предложил удобный вариант. Не подходит - тебе видней.
Цитата:

Сообщение от Valdemor
Кстати, функция matches не существует.

Да ладно???
Цитата:

Сообщение от danik.js
Но это по спецификации. В реале же нужно использовать webkitMatchesSelector || mozMatchesSelector || msMathesSelector || oMatchesSelector (http://caniuse.com/matchesselector)

Видимо я пишу в пустоту, надо завязывать...

Valdemor 09.07.2013 00:15

Ой, извините, просто гуглил matches - только о match результаты были, а о webkitMatchesSelector - так вообще 2 страницы.
Извините за отобранное время и спасибо за ответ!


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