2

根据

  • 我想使用从对象中的另一个函数设置的一些变量
  • 一个函数,onUpdate:等待从应用程序中的其他地方进行调用
  • 第二个功能,onRelease:鼠标点击后触发

我想要达到的目标

DOM我需要为这两个功能使用一些元素。但是, adocument.onload在这里不起作用,所以我想我需要将它们存储在某种JavaScript object.

限制

(元素只用在这个Object里面,必须在里面声明Object


注意:这是一个定制的app,所以它可能看起来有点混乱,但我只需要知道这是否可以在当前情况下完成


问题

有什么方法可以使用Javascript Objects或某种功能来存储/获取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  
        }
    }

});
4

1 回答 1

0

如果您想多次使用 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
        }

    }

});
于 2013-02-12T14:16:18.157 回答