聚合物:不能在<paper-button>中使用onclick动作触发jQuery代码

Polymer: can not fire jQuery code using onclick action in <paper-button>

本文关键字:onclick 代码 jQuery 不能 paper-button 聚合物      更新时间:2023-09-26

我一直坚持一件具体的事情:当我尝试使用标准按钮运行jQuery代码时-一切都很好:

<button onclick="$('#dayPicker').val(moment().format('MM/DD/YYYY'));">Today</button>

但是当我尝试使用聚合物纸按钮时,它不起作用:

<paper-button flat onclick="$('#dayPicker').val(moment().format('MM/DD/YYYY'));">Today</paper-button>

注:我没有忘记使用jQuery。如果我在onclick中放入简单的js代码,例如"alert("it works!")"

我该怎么办?

解决方案是使用onclick="window.$('#dayPicker')..."onclick="jQuery('#dayPicker')..."

在您的<paper-button onclick="">处理程序中,裸标识符$被解释为this.$,它对应于用于在Polymer中自动查找节点的helper。

显式使用window.$避免了这种冲突。使用jQuery避免了冲突,因为this.jQuery不存在于单击处理程序中,所以它最终被解释为window.jQuery

有很多好的文章解释了作用域和标识符解析是如何工作的。不幸的是,它并不总是直观或明显的。