Reputation: 185
Is there any way to fire an event when an object of a certain type is created?
I have an <div>
element with editableContent="true"
and when the user presses enter within the <div>
, a new <div>
is created that takes up just that line. Is it possible to have an event fire whenever a <div>
object is created within my original <div>
object?
I know one way to do this would to listen for keystrokes and on an 'enter' key being pressed, do a bunch of logic to figure out what to do, but this seems a lot less elegant - so it would be great if there was another way.
Upvotes: 2
Views: 3621
Reputation: 19103
Everybody who looking for a way to react to changes in a DOM should take into consideration MutationObserver. It is a standard DOM4 feature currently implemented in all latest (even not all modern but latest!) browsers.
Upvotes: 0
Reputation: 110922
There are the a bunch of DOM Events and some of them will be supported by firefox for example. But I dont think that IE will support only one of them. Here is a complete list. First you can fire a custom event every time you create a new div, or you have a settimeout that checks every second if the count of you divs childnodes has changed.
Upvotes: 3
Reputation: 3334
There's no default callbacks for new elements creating. The first thing I have in mind - you can add an event listener for mouseUp event and check content delta (changed part) - if it looks like an element markup with regexp.
Upvotes: 1
Reputation: 6334
You have a function that creates a div when you press enter. Why don't you just add a function call at the end of it.
function createDiv(){
//create div
//append div
divCreated();
}
Upvotes: 1