Polymer 1.0 Local Dom this.$ 选择器问题
Polymer 1.0 Local Dom issue with this.$ selector
据我所知,我们可以 select 来自本地 dom 的元素与 this.$ select 或。但是,如果我有一个在单击按钮时触发的函数,我将如何通过该函数中的 ID 访问元素?
例如:
HTML:
<input id = "counter" value = "10">
JavaScript:
var testButton = this.$.testButton;
$(testButton).click(function(){
var counter = this.$.counter;
console.log(counter.value);
}
问题是 "this.$.counter" 现在正在引用按钮
问题是,当您使用 Polymer 时,它不会改变事件处理程序和 this
的工作方式。 this
在您的事件处理程序中对应于 testButton
,因为它是触发 click
事件的元素,而不是 Polymer 元素。
试试这个:
var testButton = this.$.testButton;
var counter = this.$.counter;
$(testButton).click(function(){
console.log(counter.value);
}
使用 Polymer 的 onTap 函数代替 onClick 也可以解决这个问题。
如果您将 jQuery 与聚合物一起使用,那么您很可能做错了什么。
<button on-tap='foo'>
...
Polymer({
...
foo: function(event){
console.log(this.$.counter);
}
});
据我所知,我们可以 select 来自本地 dom 的元素与 this.$ select 或。但是,如果我有一个在单击按钮时触发的函数,我将如何通过该函数中的 ID 访问元素?
例如:
HTML:
<input id = "counter" value = "10">
JavaScript:
var testButton = this.$.testButton;
$(testButton).click(function(){
var counter = this.$.counter;
console.log(counter.value);
}
问题是 "this.$.counter" 现在正在引用按钮
问题是,当您使用 Polymer 时,它不会改变事件处理程序和 this
的工作方式。 this
在您的事件处理程序中对应于 testButton
,因为它是触发 click
事件的元素,而不是 Polymer 元素。
试试这个:
var testButton = this.$.testButton;
var counter = this.$.counter;
$(testButton).click(function(){
console.log(counter.value);
}
使用 Polymer 的 onTap 函数代替 onClick 也可以解决这个问题。
如果您将 jQuery 与聚合物一起使用,那么您很可能做错了什么。
<button on-tap='foo'>
...
Polymer({
...
foo: function(event){
console.log(this.$.counter);
}
});