|
|
|
@ -7,24 +7,53 @@ var abp = abp || {}; |
|
|
|
|
|
|
|
abp.dom = abp.dom || {}; |
|
|
|
|
|
|
|
abp.dom.onElementLoaded = function (callback) { |
|
|
|
abp.event.on('abp.dom.elementLoaded', callback); |
|
|
|
abp.dom.onNodeAdded = function (callback) { |
|
|
|
abp.event.on('abp.dom.nodeAdded', callback); |
|
|
|
}; |
|
|
|
|
|
|
|
abp.dom.elementLoaded = function(args) { |
|
|
|
abp.event.trigger('abp.dom.elementLoaded', args); |
|
|
|
} |
|
|
|
|
|
|
|
abp.dom.onElementUnloaded = function (callback) { |
|
|
|
abp.event.on('abp.dom.elementUnloaded', callback); |
|
|
|
abp.dom.onNodeRemoved = function (callback) { |
|
|
|
abp.event.on('abp.dom.nodeRemoved', callback); |
|
|
|
}; |
|
|
|
|
|
|
|
abp.dom.elementUnloaded = function (args) { |
|
|
|
abp.event.trigger('abp.dom.elementUnloaded', args); |
|
|
|
} |
|
|
|
|
|
|
|
$.fn.findWithSelf = function (selector) { |
|
|
|
return this.filter(selector).add(this.find(selector)); |
|
|
|
}; |
|
|
|
|
|
|
|
var mutationObserverCallback = function(mutationsList) { |
|
|
|
for (var i = 0; i < mutationsList.length; i++) { |
|
|
|
var mutation = mutationsList[i]; |
|
|
|
if (mutation.type === 'childList') { |
|
|
|
if (mutation.addedNodes && mutation.removedNodes.length) { |
|
|
|
for (var k = 0; k < mutation.removedNodes.length; k++) { |
|
|
|
abp.event.trigger( |
|
|
|
'abp.dom.nodeRemoved', |
|
|
|
{ |
|
|
|
$el: $(mutation.removedNodes[k]) |
|
|
|
} |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (mutation.addedNodes && mutation.addedNodes.length) { |
|
|
|
for (var j = 0; j < mutation.addedNodes.length; j++) { |
|
|
|
abp.event.trigger( |
|
|
|
'abp.dom.nodeAdded', |
|
|
|
{ |
|
|
|
$el: $(mutation.addedNodes[j]) |
|
|
|
} |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
new MutationObserver(mutationObserverCallback).observe( |
|
|
|
$('body')[0], |
|
|
|
{ |
|
|
|
subtree: true, |
|
|
|
childList: true |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
})(jQuery); |