在 JQuery 中访问 vue js 变量
access vue js variable in JQuery
调用strike函数(在select之后)函数,出现如下错误:
Uncaught ReferenceError: selected is not defined
methods: {
select: function(event) {
selected = event.target.id
},
strike: function(event) {
$(selected).toggleClass('strike')
}
}
这适用于 JavaScript、document.getElementById(selected).classList.add('strike')
,但不适用于 JQuery。
如何定义 selected
供 jQuery 访问?
因为 $()
需要一个 CSS 选择器字符串。添加 #
表示它是一个 id
.
$("#" + selected).toggleClass('strike')
不必再次查询 DOM,最好保存对实际元素的引用:
methods: {
select: function(event) {
this.selected = event.target;
},
strike: function() {
$(this.selected).toggleClass('strike');
}
}
如果您不必支持旧的 IE 浏览器,您可以在这里完全放弃 jQuery,使用 classList
属性:
methods: {
select: function(event) {
this.selected = event.target;
},
strike: function() {
this.selected.classList.toggle('strike');
}
}
最后,应该有一种方法可以通过模板本身中 Vue 的 :class
绑定来处理所有这些。如果您向我们展示模板,我们可能会帮助您改进它。
调用strike函数(在select之后)函数,出现如下错误:
Uncaught ReferenceError: selected is not defined
methods: {
select: function(event) {
selected = event.target.id
},
strike: function(event) {
$(selected).toggleClass('strike')
}
}
这适用于 JavaScript、document.getElementById(selected).classList.add('strike')
,但不适用于 JQuery。
如何定义 selected
供 jQuery 访问?
因为 $()
需要一个 CSS 选择器字符串。添加 #
表示它是一个 id
.
$("#" + selected).toggleClass('strike')
不必再次查询 DOM,最好保存对实际元素的引用:
methods: {
select: function(event) {
this.selected = event.target;
},
strike: function() {
$(this.selected).toggleClass('strike');
}
}
如果您不必支持旧的 IE 浏览器,您可以在这里完全放弃 jQuery,使用 classList
属性:
methods: {
select: function(event) {
this.selected = event.target;
},
strike: function() {
this.selected.classList.toggle('strike');
}
}
最后,应该有一种方法可以通过模板本身中 Vue 的 :class
绑定来处理所有这些。如果您向我们展示模板,我们可能会帮助您改进它。