1

我正在使用 Sencha Touch 2,我有一个按钮声明,在事件单击时我想更改其文本属性。

这是我的代码,不起作用..知道如何解决吗?

var accessibilityButton = {
        id: 'accessibilityButton',
        xtype: 'button',
        ui: 'custom-btn-confirm',
        maxWidth: '360px',
        centered: true,
        flex: 1,
        scope: this,
        style: 'color: #ffffff',
        text: 'Larger Text',

        handler: function changeStyle() {

            // Swap the CSS for Accessibility             
            var i, a, url, btn;
            btn = document.getElementById('accessibilityButton');

            for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
                if(a.getAttribute("rel").indexOf("style") != -1) {
                    url = a.href;

                    if(url.lastIndexOf('app.css') !== -1) {
                        a.href = 'resources/css/app-accesibility.css';          
                        btn.innerHTML = 'Default Text';
                    }
                    else {
                        a.href = 'resources/css/app.css';
                        btn.innerHTML = 'Larger Text';   
                    }
                } 

            }

        }

    };
4

1 回答 1

2

您的处理程序函数应该在按钮组件的范围内被调用,因此只需尝试执行以下操作:

handler: function changeStyle() {
    this.setText('text');
}

编辑

或者如果您更改了范围:

scope: this,
handler: function changeStyle(btn) {
    btn.setText('text');
}

请注意,第二个版本一直有效。

于 2012-10-01T13:01:43.470 回答