Javascript,访问一个主要对象模块模式中的每个对象

Javascript, access each object inside one main object - module pattern

本文关键字:对象 模式 模块 一个 访问 Javascript      更新时间:2023-09-26

我创建了一个小组件,它遍历所有的select元素,并从中创建无序列表,这样我就可以轻松地对其进行样式设置。一切都如我所愿。这是脚本:https://github.com/goranefbl/softdrop

你这样发射:

SoftDrop.init({
  selector:'input_select',
  mobile:true
});

它循环遍历每个"input_select"元素并为其创建新节点。但这都是一个单独的对象,如果我想将一个项目推送给它,或者用一些公共方法关闭它,我就无法访问例如特定的select元素。

对于每个元素,我都会添加数据softdrop="i",这样我就可以很容易地将其作为目标:

document.querySelectorAll("[data-softdrop='i']")

它是有效的。但如果我想从组件内部做到这一点,可以这样做:

var selects = SoftDrop.init({
      selector:'input_select',
      mobile:true
    });
selects.data('something').open();

我该怎么做?我会在顶部创建一些对象数组,在forEach调用期间,将其推送到那里,然后如何访问它?能够对特定的select元素使用公共方法。

感谢

实现这一点的一种方法是在组件内创建一个data对象,并将每个条目作为属性添加到此对象,例如:

data['something'] = myElement;

然后,稍后,您可以再次访问该元素并调用其上的方法,例如

data['something'].open();

这就是你的想法吗?