用vue2.0實現(xiàn)點擊選中active其他選項互斥的效果
在正常的js中。我們?nèi)绻獙崿F(xiàn)點擊選中active然后其他取消的效果,我們可以定義一個類,當點擊的時候給給多有的dom取消active的類,給當前元素加上這個類名,說的很啰嗦,直接來看代碼說話吧(表示樓主用的是jq):
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
width: 100px;
margin-top: 10px;
border: 1px solid red;
}
li:active {
cursor: pointer;
}
.active {
background-color: aqua;
}
</style>
<script src="http://g.ydbcdn.com/jquery/latest/jquery.min.js"></script>
</head>
<body>
<ul>
<li>this is pne</li>
<li>this is two</li>
<li>this is three</li>
</ul>
</body>
<script>
$(() => {
$("li").click((e) => {
$("li").removeClass("active");
$(e.target).addClass("active");
})
})
</script>
效果如下圖所示:

但是在vue里面,是不提倡進行dom操作的,如果非進行dom的話,vue2.0里面有一個ref的屬性,是可以達到dom的效果的。那么接下來我們不接住dom來進行操作:
由于習慣了webpack和vue-cli腳手架,所以樓主所有vue的代碼都是放在webpack的腳手架當中進行,還使用了pug和scss的預處理器,vue的代碼如下:
<template lang="pug">
ul
li(v-for="(item,index) in classArr", @click="result(index)", :class="resultNum === index?'active':''") this is {{item}}
</template>
<style lang="scss">
li {
list-style: none;
width: 100px;
margin-top: 10px;
border: 1px solid red;
&:hover {
cursor: pointer;
}
}
.active{
background-color: aqua;
}
</style>
<script>
export default{
data(){
return {
classArr: ["one", "two", "three"],
num:"",
}
},
methods: {
result(index){
this.num = index;
}
},
computed:{
resultNum(){
return this.num;
}
}
}
</script>
思路如下:
這段代碼使用的是index這個關(guān)鍵字,還使用了computed這個計算屬性,當當前的index索引與點擊的當前元素的下標相同的時候,便會觸發(fā)active這個類名。說的很簡練,不懂的可以加博主一起探討
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue2(三)實現(xiàn)子菜單展開收縮,帶動畫效果實現(xiàn)方法
這篇文章主要介紹了vue實現(xiàn)收縮展開效果的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
vue項目使用node連接數(shù)據(jù)庫的方法(前后端分離)
這篇文章主要介紹了vue項目使用node連接數(shù)據(jù)庫(前后端分離),本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
前端通過vue調(diào)用后端接口導出excel表格基本步驟
在Vue前端項目中,可通過axios庫發(fā)送請求至后端獲取Excel下載鏈接,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-10-10

