首页 > 解决方案 > 如何先显示一个元素,然后执行一个函数来改变这个元素的样式 vue.js

问题描述

当按钮被点击时,触发onclick事件并执行函数

descriptionShown: function (num) {
                if (this.visibleNumber === num) {
                    this.isShown = !this.isShown;  
                } else {
                    this.isShown = true;
                    this.visibleNumber = num;
                }

                 if(this.isShown)
                     this.textareaResize(num);
            },

在 isShown = true 之后,应该重新绘制 textarea 组件,因为有 v-if="{{ newRecord.originalRecordId }} == visibleNumber && isShown"

<template v-if="{{ newRecord.originalRecordId }} == visibleNumber && isShown">
                            <ul class="list-group" :style="{ display: 'block' }" >
                                <li class="list-group-item"><textarea id="textarea-{{ newRecord.originalRecordId }}" readonly>{{ newRecord.originalRecordText }}</textarea></li>
                            </ul>
                        </template>
                        <template v-else>
                            <ul class="list-group" :style="{ display: 'none' }" >
                                <li class="list-group-item"><textarea id="textarea-{{ newRecord.originalRecordId }}" readonly>{{ newRecord.originalRecordText }}</textarea></li>
                            </ul>
                        </template>

如何使重绘首先发生(通过 v-if),然后执行更改 textarea 大小的函数?然后事实证明,首先有大小变化(0到0),然后只显示元素

标签: vue.js

解决方案


推荐阅读