基地
- 我想在一个对象中使用一些从另一个函数设置的变量
- 一个函数,
onUpdate:
等待从应用程序中的其他地方发出的调用 - 第二个函数,
onRelease:
在鼠标点击后触发
我正在努力实现的目标
我需要为这两个功能使用一些 DOM
元素。但是,document.onload
在这里不起作用,所以我认为我需要将它们存储在某种JavaScript 对象
中。
限制
(元素只在这个Object
中使用并且必须在Object
中声明)
注意:这是一个自定义构建的应用
所以看起来有点困惑,但我只需要知道在当前情况下是否可以这样做
问题
有没有办法使用 Javascript 对象
或某种存储/获取 DOM
元素的函数,以便它们在整个 Object
中可用>?
代码
var ObjB = exports.ObjB = ObjA.extend({
/* Something to contain the DOM Elements E.g.
UI = {
domElement: document.querySelector('#dom')
},
*/
onUpdate: function() {
if(domElement.hasClass('class')) {
// logic using other elements
}
},
onRelease: function() {
if(domElement.hasClass('class')) {
// logic using other elements
}
}
});
最佳答案
如果你想多次使用 dom 元素,并且你想避免每次你想使用该元素时调用选择器,你可以这样做,但要知道这只有在你以后不要删除或添加所需的元素(在您第一次调用 this.setupUi()
之后),因为 UI
只会初始化一次:
var ObjB = exports.ObjB = ObjA.extend({
onUpdate: function() {
this.setupUi();
if(this.UI.domElement.hasClass('class')) {
// logic using other elements
}
},
onRelease: function() {
this.setupUi();
if(this.UI.domElement.hasClass('class')) {
// logic using other elements
}
},
setupUi : function() {
if( !this.UI ) {
this.UI = {};
this.UI.domElement = document.querySelector('#dom');
//add all other elements that are required by the object
}
}
});
关于javascript - 在整个对象中的多个函数中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834190/