vue 中 input选中和v-show的问题

发布于 2022-09-11 15:38:55 字数 1782 浏览 43 评论 0

一、

1,vue中使用input选中功能,单击选中无任何问题。
   但设置“全选”,点击全选时候,input标签瞬间勾中,又瞬间取消打钩,
   下方“全选”按钮为点击时 用v-show 隐藏,然后使用 v-show显示“取消全选”按钮,
   全选隐藏瞬间 ,input 也会跟着隐藏
          

二、

详见此图

图片描述

三、

代码

1、<template>

<div  class="del_button_div clearfix">
    <p v-show="AllChoiceYes" @click="take_All_SKID" class="AllChoice">全选</p> 
    <p v-show="AllChoiceNo" @click="no_take_All_SKID" class="no_AllChoice">取消全选</p>
    <p @click="delshow" class="del_button"> 删除</p>
</div>

2、<script>
data(){

return{
    AllChoiceYes:true,
      AllChoiceNo:false,
      selectArr: [],
}

},
methods:{

//全部选中
take_All_SKID(){
    $(".choice").prop("checked", true);
    var AllReadlistDel = '';
    //console.log(this.records.length)
    
    //$(".yesorno_svg").prop("checked", true);
    for (var i = 0; i < this.records.length; i++) {
         //console.log(this.records[i].GoodsList[i].SKID)
        this.records[i].GoodsList.map(item => {
            //console.log(item.SKID)
            AllReadlistDel += item.SKID + ','; 
            //console.log(this.AllReadlistDel); 
        });
    };
    this.AllReadlistDel = AllReadlistDel.substr(0,AllReadlistDel.length - 1);
    this.AllChoiceYes = false;
    this.AllChoiceNo = true;
    console.log(this.AllReadlistDel)
},
//取消全选
no_take_All_SKID(){
    $(".choice").prop("checked", false);
    this.selectArr = [];
    this.AllChoiceNo = false;
    this.AllChoiceYes = true;
},

},

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

oО清风挽发oО 2022-09-18 15:38:55
$(".choice").prop("checked", true);

这操作也是骚. 你先用 jquery 手动操作了 dom, 此时 vue 又因为 AllChoiceYesAllChoiceNo 的改变触发了重新渲染, 又重新渲染了一个没有被选中的 input.

解决方案:
请用数据驱动 ui. 不要直接操作 dom 了.

心奴独伤 2022-09-18 15:38:55

不要有jq
$(".choice").prop("checked", true);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文