запускать событие javascript при создании объекта - PullRequest
2 голосов
/ 23 июля 2010

Есть ли способ вызвать событие при создании объекта определенного типа?

У меня есть элемент <div> с editableContent="true", и когда пользователь нажимает ввод в пределах <div>, создается новый <div>, который занимает только эту строку. Можно ли вызывать событие при создании объекта <div> в моем исходном объекте <div>?

Я знаю, что один из способов сделать это состоит в том, чтобы прослушивать нажатия клавиш и при нажатии клавиши «Ввод» делать кучу логики, чтобы выяснить, что делать, но это выглядит намного менее элегантно - так что было бы здорово если бы был другой путь.

Спасибо!

Ответы [ 4 ]

3 голосов
/ 23 июля 2010

Существует куча DOM Events , и некоторые из них будут поддерживаться, например, Firefox .Но я не думаю, что IE будет поддерживать только один из них. Здесь - полный список.Сначала вы можете запускать пользовательское событие каждый раз, когда создаете новый div, или у вас есть settimeout, который каждую секунду проверяет, изменилось ли количество дочерних узлов div.

1 голос
/ 23 июля 2010

Нет никаких обратных вызовов по умолчанию для создания новых элементов. Первое, что я имею в виду - вы можете добавить прослушиватель событий для mouseUp и проверить дельту содержимого (измененная часть) - если это выглядит как разметка элемента с помощью регулярного выражения.

1 голос
/ 23 июля 2010

У вас есть функция, которая создает div при нажатии клавиши ввода. Почему бы вам просто не добавить вызов функции в конце этого.

function createDiv(){
  //create div 
  //append div
  divCreated();
}
0 голосов
/ 09 сентября 2013

Каждый, кто ищет способ реагировать на изменения в DOM, должен принять во внимание MutationObserver .Это стандартная функция DOM4, в настоящее время реализованная в всех последних (даже не всех современных , но новейших!) Браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...