javascript - 关于vue的this指向
大家讲道理
大家讲道理 2017-04-11 11:37:57
[JavaScript讨论组]
var city = new Vue({
    el:'.city',
    data:{
        choices:[
            {cities:'北京'},
            {cities:'上海'},
            {cities:'福州'},
            {cities:'广州'},
            {cities:'青岛'}
        ]
    },
    methods:{
        changeCity:function(){
            $(this).css('color','red').siblings().css('color','');  //问题在这里,这里的this好像不是指向点击的那个元素,好像是指向vue里面的,该怎么办?
        }
    }
    
});

切换城市: {{item.cities}}

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
黄舟

为什么不用vue中的class与style绑定呢?

我之前写过一篇文章介绍使用Vue.js实现选中高亮的效果,很简洁:

使用Vue.js实现列表选中效果

或者你也可以参考下面例子:

https://jsfiddle.net/xiaoluoboding/z5xusoL9/

PHP中文网

vue中methods对象里的函数, this指向的都是当前实例或者组件

<a href="#" v-on:click="changeCity"  v-for="item in choices">

改成

<a href="#" v-on:click="changeCity($event)"  v-for="item in choices">
changeCity:function(){
    $(this).css('color','red').siblings().css('color','');
}

改成

changeCity:function(e){
    $(e.target).css('color','red').siblings().css('color','');
}
迷茫

你这样写的this是指向一个vue的实例vm;需要注意的是这里是vue不是jQuery哦,我觉得在vue中吧样式绑定到数据挺好的,这样就不用直接操作dom啦

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号