组件中的一个模板如图
初始ifShow
为false
所以class='property'
的 ul
不显示
通过focus事件触发改变ifShow
的值为true
使class='property'
的 ul
显示
通过focus事件触发显示的ul
click事件无效..
而如果在ifShow
为false的情况下 手动更改此时ul
的display
属性为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>
`
一只萌萌小番薯
回首忆惘然
相关分类