JSFiddle - React, Tailwind, and code Playground
HTML
<input type="range" min="10" max="50" id="test" />
JavaScript
var AttributeObserver = function(element, callback, attribute){
var MO = (window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver);
if (MO) {
var observer = new MO(callback);
observer.observe(element, { attributes: true, attributeFilter: [attribute] });
} else if (element.addEventListener) {
element.addEventListener('DOMAttrModified', function(e){
if (e.attrName == attribute) {
callback()
}
}, false);
} else if ("onpropertychange" in document) {
element.attachEvent ('onpropertychange', function(e){
if (e.attrName == attribute) {
callback()
}
});
}
}
var test = document.getElementById("test");
new AttributeObserver(test, function(e){
alert("now min is: " + test.min)
}, "min")
test.min = 25;