laravel - 当单击外部 div 时,vuejs 停止传播单击
问题描述
我正在尝试创建搜索显示隐藏功能。我有一个显示搜索栏的单击事件,但是如果我单击放置中的某个位置,它会再次被删除。我试过了,click.stop
但它不起作用。我在 laravel 项目中使用 vue.js。
这是我的代码
<template>
<div>
<div class="menu_srch d-flex" @click.stop="dos">
<i class="fa fa-search search_btn"></i>
<div class="header_serch " v-if="showSearch">
<div class="header_serch_input">
<input type="" name="" placeholder="Search">
</div>
<div class="header_serch_i">
<i class="fa fa-search"></i>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data(){
return {
showSearch : false,
}
},
methods: {
dos(){
this.showSearch = !this.showSearch
}
},
}
</script>
使用 click.self 甚至不起作用.. dos 方法不运行时click.self is used.
Vue.js 版本:“^2.6.11”
解决方案
您可以捕获单击事件结束以停止向下一级的传播。
<template>
<div>
<div class="menu_srch d-flex" @click="dos">
<i class="fa fa-search search_btn"></i>
<div @click.stop class="header_serch" v-if="showSearch">
<div class="header_serch_input">
<input type name placeholder="Search">
</div>
<div class="header_serch_i">
<i class="fa fa-search"></i>
</div>
</div>
</div>
</div>
</template>
或者您需要重新构建您的模板。
<template>
<div>
<div class="menu_srch d-flex" @click="dos">
<i class="fa fa-search search_btn"></i>
</div>
<div class="header_serch" v-if="showSearch">
<div class="header_serch_input">
<input type name placeholder="Search">
</div>
<div class="header_serch_i">
<i class="fa fa-search"></i>
</div>
</div>
</div>
</template>
推荐阅读
- python - Error : "ValueError: invalid literal for int() with base 10: '' while passing values to sql database from Tk entry widget
- function - fmap 的标准前奏名称。常量
- javascript - Iterating on my array in JS but I'm getting a "Cannot read property 'length' of undefined" error
- python - Recursive function pattern
- r - 根据唯一的开始日期和结束日期 [R] 从时间序列中过滤列(将第 1 行标准化为每一行的第一天)
- vim - Why is Autocomplete not working for vim-jedi
- javascript - 如何从静态文件夹中播放 html 中的 mp3 文件?
- python - Pandas 在更广泛的数据框中转换虚拟变量列表
- mongodb - 将 base64 插入 mongodb:语法错误 Unexpected token ILLEGAL
- python - SecurityError: 无法建立到“EOF 违反协议 (_ssl.c:841)”的安全连接