我发现自己经常需要Element
的addClassName和removeClassName函数。但是,由于潜在的碰撞,我不敢扩展原生Element
。所以,现在我想知道该怎么做。
我看了看ExtJS,它实现了这个:
var element = document.getElementById('...');
var elem = new Ext.Element(element);
elem.addClass('something');
我喜欢不在这里扩展本地Element
的想法,但我真的不喜欢将元素包裹在自定义对象上的想法,因为现在我不能做像{{{{{{ 1}}很容易,例如:
setAttribute
但是,我可以这样做:
var element = document.getElementById('...');
var elem = new Ext.Element(element);
elem.addClass('something');
elem.setAttribute('src', '...'); // Fails
但对我来说这看起来并不好看。它看起来有点复杂。
除了在我自己的对象周围包装元素以及为我提供这些很酷的方法之外,还有其他方法吗?
答案 0 :(得分:0)
只需检查是否已定义实施。我很确定addClassName
不会有比现在更不同的签名。
if (!node.prototype.addClassName) {
node.prototype.addClassName = function addClassName(name) {
// your code
}
}