ydcss / vue-ydui

A mobile components Library with Vue2.js. 一只基于Vue2.x的移动端组件库。
http://vue.ydui.org
MIT License
2.75k stars 560 forks source link

checklist全选/全不选,安卓和windows上没有问题,ios上只能取消全选不能全选 #743

Closed lhzcc closed 5 years ago

lhzcc commented 5 years ago

问题描述

在ios上,如果我的item有n个,当我一个个选中的时候会触发全选,这时候点击全选按钮不会取消全选, 但是如果我选中的item少于n-1个时点击全选只会触发全不选而不是全选。 我手机预览官网的例子没有问题,但是把官网的代码添加到我的代码中一样会出现上面的问题。 安卓和windows上没有问题

产生环境

代码区域

<script>
    <template>
    <div>
        <div style="padding-left:12px;margin-bottom: 10px;">
            <yd-checkbox v-model="isCheckAll" shape="circle" :change="checkAll">全选 {{isCheckAll}}</yd-checkbox>
        </div>

        <yd-checklist v-model="checklist3" ref="checklistDemo" :callback="change">
            <yd-checklist-item val="1">
                <div style="height: 50px;line-height: 50px;">1 -- 值:{{checklist3}}</div>
            </yd-checklist-item>
            <yd-checklist-item val="2">
                <div style="height: 50px;line-height: 50px;">2</div>
            </yd-checklist-item>
            <yd-checklist-item val="3">
                <div style="height: 50px;line-height: 50px;">3</div>
            </yd-checklist-item>
        </yd-checklist>
    </div>
</template>

<script type="text/babel">
    export default {
        data() {
            return {
                checklist3: [],
                isCheckAll: false
            }
        },
        methods: {
            change(value, isCheckAll) {
                this.isCheckAll = isCheckAll;
            },
            checkAll() {
                this.isCheckAll = !this.isCheckAll;
                this.$refs.checklistDemo.$emit('ydui.checklist.checkall', this.isCheckAll);
            }
        }
    }
</script>
</script>
lhzcc commented 5 years ago

把:change 改成 @click.native 问题解决了

Aaron674092290 commented 5 years ago

改成@click.native貌似安卓出问题了