在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue的v-show和@click的一個問題

vue的v-show和@click的一個問題

組件中的一個模板如圖
初始ifShowfalse 所以class='property'ul 不顯示
通過focus事件觸發(fā)改變ifShow的值為true使class='property'ul 顯示

問題

通過focus事件觸發(fā)顯示的ul click事件無效..
而如果在ifShow為false的情況下 手動更改此時uldisplay屬性為block時, ul顯示出來并且click事件有效

    template: `
    <div class='outside'>
        <ul class='input'>
            <li>
                <ul class='box'>
                    <li>
                        <div style='display:inline-block;overflow:hidden' v-if='tagsLength > 0'>
                            <span class='tag' v-for='(tag, index) in tags'>{{ tag.name }} <a href='#' @click='delTag(index)'>x</a></span>
                        </div>
                        <input :value='value' @input='$emit("input", $event.target.value)' @keyup.enter='onEnter' class='content' @focus='onFocus' @blur='onBlur'>
                    </li>
                    <li style='position:absolute;background:#fff;z-index:999'>
                        <ul class='property' v-show='ifShow'>
                            <li>{{ propertyHint }}</li>
                            <li v-for='property in properties' @click='onClick(property)' :data-id='property.id'>{{ property.name }}</li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
        <div class='help-tips'>
            <p>{{ inputHint }}</p>
        </div>
    </div>
`
回答
編輯回答
單眼皮

你可以使用v-if試一試

2017年3月10日 10:31
編輯回答
挽歌

點擊ul中的li時:

在ul的click事件觸發(fā)之前,li的blur事件先被觸發(fā)了,所以ul的click事件不會觸發(fā)。

解決辦法:

1. 給blur事件添加延時。
2. 在click事件中修改isShow的值為false。
2017年10月8日 03:26