2017-02-04 66 views
0

在我-app.html聚合物初學者工具包2的Javascript範圍

... 

<paper-icon-button icon="my-icons:menu" onclick="this.$._joesDrawerToggle()"></paper-icon-button> 

... 

<script> 
    Polymer({ 
    is: 'my-app', 

    ... 

    _showPage404: function() { 
     this.page = 'view404'; 
    }, 


    _joesDrawerToggle: function() { 

     if (this.$.drawer.opened) { 
     this.$.drawer.close(); 
     }else{ 
     this.$.drawer.open(); 
     } 

    } 
    }); 
</script> 

當編輯我-app.html,WebStorm自動完成發現這一點。$ ._Ĵ這一點。$。 _joesDrawerToggle()

然而,當我按一下按鈕,Chrome瀏覽器開發工具說:

Uncaught TypeError: this.$._joesDrawerToggle is not a function 
    at HTMLElement.onclick ((index):1) 
onclick @ (index):1 

看來index.html的需要知道關於_joesDrawerToggle()。我不知道爲什麼。

我該如何做這項工作?

回答

0

變化

<paper-icon-button icon="my-icons:menu" onclick="this.$._joesDrawerToggle()"></paper-icon-button> 

<paper-icon-button icon="my-icons:menu" on-tap="_joesDrawerToggle"></paper-icon-button>` 
+0

嗨ddp。這對我不起作用。 –

+0

我將'on-click'改爲'on-tap',現在應該可以工作 – ddp

+0

良好的跟進。 –

0

以下爲我工作。

<paper-icon-button icon="my-icons:menu" on-tap="_joesDrawerToggle"></paper-icon-button> 

我發現下面的鏈接, 「Annotated event listener setup」。它有一個「提示」,說:

提示:使用on-tap而不是on-click來觸發一個在觸摸(移動)和點擊(桌面)設備上一致觸發的事件。查看手勢事件以獲取可靠的跨平臺事件的完整列表。