Могу ли я сделать так, чтобы событие JQuery сбрасывало DOM, а также пузырилось?
Я пытаюсь реализовать событие 'create', которое срабатывает при добавлении узла в dom. Я нашел несколько реализаций, но у всех есть одна общая черта - корень вставленного элемента запускает событие create, но ни одно из его дочерних элементов. Если вариант использования заключается в том, чтобы дать узлу функцию «конструктор», то событие create должно применяться ко всем новым узлам, не так ли?
Например, если я вставлю неупорядоченный список с несколькими элементами списка. Все методы, которые я обнаружил, будут вызывать событие ul create, но ни один из li.
Моя лучшая идея - каким-то образом связать фазу струйки события, чтобы событие начиналось в уль, а они просачивались во все ли.
Поскольку остальная часть системы использует события jquery, я бы хотел оставить это так, но чистое решение js тоже подойдет.
В настоящий момент я также очень заинтересован в вебките, поэтому любое решение не обязательно должно быть безопасным для IE.
Спасибо
@ Dave:
Кто-то исправит меня, если я здесь не прав, но, насколько я понимаю, все события (кроме нескольких в IE) сначала «всплывают» в ваше дерево домов; так от li до ul к телу, затем развернитесь и «стекайте» обратно вниз; от тела к ул, на ли, на которого нажали, и на любого из детей ли.
Вы можете прослушивать события, которые «сочетаются», установив третий параметр addEventListener в значение true в большинстве браузеров (хотя я не думаю, что IE attachEvent имеет такую возможность).
У нас бывают как пузыри, так и струйки в основном потому, что возникла путаница относительно того, как это должно быть сделано еще при рождении Интернета, и w3c только что принял оба в своих спецификациях, чтобы все были довольны, а обратная совместимость хорошая. Со временем ручеек постепенно исчез, потому что в большинстве случаев он довольно бесполезен, поэтому я не думаю, что у jquery есть какие-либо варианты для этого. Мне кажется, что событие «создать» - это один из тех странных случаев, в которых было бы полезно использовать ручеек. Хитрость заключается в том, как интегрировать запуск события create и затем превращать его в jquery таким образом, чтобы сохранить совместимость браузера и API jquery bind () / trigger (), который нам нравится ...