【问题标题】:Checkbox needs to be pressed twice for onclick to work需要按两次复选框才能使 onclick 起作用
【发布时间】:2018-09-07 16:41:52
【问题描述】:

我有一个由 DOM 重复组成的复选框:

<paper-listbox id="afgerondtitel">
      <paper-item id="check1">Afgerond</paper-item>
      <template is="dom-repeat" items="{{gerechten}}" count="[[num_box]]">
      <paper-item id="item_[[index]]"><paper-checkbox checked="{{item.checked}}" on-click="click"></paper-checkbox></paper-item>
      </template>
    </paper-listbox>

我尝试使用此函数从 ArrayList 中删除一个变量:

click(){
        for(var i = this.gerechten.length - 1; i >= 0; i--) {
          if(this.gerechten[i].checked) {
            this.gerechten.splice(i, 1);
          }
          }
      }

问题是复选框需要按下两次(选中然后取消选中)才能从列表中删除变量。

我想选中该复选框,以便代码立即从列表中删除 de variabele。

提前致谢!

【问题讨论】:

  • 你的意思是onTap吗?在测试移动版本时,我的下拉菜单遇到了类似的错误。尝试将道具 onTouchEnd={} 和 onClick={} 指向您的 onclick 函数

标签: javascript html arraylist checkbox polymer


【解决方案1】:

实际上,它会在第一次单击时从数组中删除。但是你需要使用 Polymer 方式array.splice 才能观察到变化,所以使用:

 this.splice('gerechten', i, 1); // in order to observable changes in dom-repeat. 

而不是:

 this.gerechten.splice(i, 1);

对于对象和数组,您将需要始终以可观察的方式进行更改。检查此链接以获取更多详细信息: https://www.polymer-project.org/2.0/docs/devguide/model-data#array-mutation

DEMO

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    相关资源
    最近更新 更多