我创建了一个函数来提供一个方法框架,该框架可以应用于现有的HTML元素。它基本上是这样的:
var vd = function(tgt){
this.init = function(){
var html_structure = '\
...\
';
tgt.html(html_structure);
this.vdID = createHash();
tgt.attr('data-vd-id', this.vdID);
};
...
this.init();
}
并获得如下的实例:
ovd = new vd($('#container'));
在开发过程中,我决定要"沙盒" (引用,因为它与这种情况下沙盒的广泛含义无关)所有方法的全部功能,并将它们限制为以tgt
提供的元素,因为页面中有多个实例处理程序的实例一定不要碰撞。为了避免必须冗余地创建tgt
内所有参与元素的对象引用,我添加了一个新函数:
this.vdq = function(sel, get_sel) {
var fullsel = '[data-vd-id="' + this.vdID + '"] ' + sel;
return (get_sel == true) ? fullsel : $(fullsel);
};
不是通过$(selector)选择元素,而是通过this.vdq(selector)来实现。但是我知道这既不优雅也不高效(就性能=> DOM解析而言)解决方案,特别是因为我有相当多的事件监听器也依赖于这个功能。
我在这里想要完成的事情是否有共同的名称/描述?
处理此要求时的常见做法是什么?
我在这里错过了一个快速简便的解决方案吗?
感谢任何输入!