1

我有以下 JavaScript 代码:

this._incrementButtonProperties = {  
        "enabled": this.properties.incrementButtonConfig.enabled,  
        "enabledClass" : "SchedMainCtrlIncrementBtn_En",  
        "disabledClass" : "SchedMainCtrlIncrementBtn_Ds",  
        "appData" : this.properties.incrementButtonConfig.appData,  
        "text" : this.properties.incrementButtonConfig.text,  

        "incrementSelectCallback" : this._incrementButtonSelectHandler.bind(this),  
};

        this._incrementBtn = document.createElement('div');  
        this._incrementBtn .className = this._incrementButtonProperties.enabledClass;  
        this.divElt.appendChild(this._incrementBtn);  

&

this._incrementBtn.addEventListener('click', this._incrementButtonProperties.incrementSelectCallback, false);  

还,

this._prototype._incrementButtonSelectHandler = function(ctrlRef, appData, params)  
{  

     // + & -  
     alert("_incrementButtonSelectHandler called... ");
}  

但是没有添加事件侦听器:-(如果我写 document.addEventListener('click', this._incrementButtonProperties.incrementSelectCallback, false); - 那么侦听器将被添加但我只需要它用于“this._incrementBtn” div 元素。

知道出了什么问题吗?

注意:请不要建议使用 jQuery 等。我不想使用任何框架。

谢谢斯内哈
_

4

1 回答 1

0

它真的应该读 this._prototype._incrementButtonSelectHandler = ...吗?

不应该是this.prototype吗?否则我看不出 this._incrementButtonSelectHandler 如何对应 this._prototype._incrementButtonSelectHandler。

此外,您在 this._incrementButtonProperties {...} 中有一个尾随逗号,在 Ecmascript 5 之前它实际上是无效的,即使大多数浏览器都会接受它而没有任何抱怨。

于 2013-02-04T08:39:24.937 回答