Vue+jquery實現(xiàn)表格指定列的文字收縮的示例代碼
本文介紹了Vue+jquery實現(xiàn)表格指定列的文字收縮的示例代碼,分享給大家,具體如下:

效果很簡單,但是寫起來真的不容易,因為Vue對于沒有React這種前端框架經驗的人是不友好的
(少吐槽,多工作,省下時間出去hi)
先說一下我走過的彎路:我之間想通過 v-if 指令去操作這一列
代碼是這樣的:
<el-table-column width="250" align="center" label="比較基準">
<template scope="scope">
<span v-if="isAllTxt">{{getShortStr(scope.row.benchmark)}}</span>
<span v-else>{{scope.row.benchmark}}</span>
<i @click="changeTxt" style="margin-left:8px;color: #20a0ff;" class="el-icon-more"></i>
</template>
</el-table-column>
changeTxt 方法去改變 isAllTxt這個boolean 從而達到控制長短文字的顯示
額,然后每次點擊任意一行,這一列所有的文字都改變了。呃呃呃,這樣產品絕對不會答應的,你以為是上課全體起立么???
好,我們用原來jquery時代開發(fā)的經驗,在點擊事件中傳入 $(this) ,手動改dom
(前提是項目配置了jquery,請轉頭看:http://www.dbjr.com.cn/article/115161.htm,上去,自己動。哦不,自己動手把它配好)
changeTxt($(this))
changeTxt(ref) {
ref.text(XXX);
}
結果當然是錯誤:

那底下就有同學說是不是jquery導錯了???
當然也不是,這里的 this 并不是 dom 的 this,是vue的vm對象,不信的可以在方法中用jquery的 $ 試一下,并不是jquery的鍋。
那又有愛思考的小伙伴說我用直接用 this 可以么 ?
changeTxt(this)

得到的并不是當前元素的對象,這條路又不通。
那vue中是怎么得到元素的對象的呢???
給元素定義 ref
<span ref="txt">{{getShortStr(scope.row.benchmark)}}</span>
方法中通過 this.$refs['txt'].text(XXX) 改變dom,嗯?

引用返回的是什么 ??? 沒法操作啊 ,而且返回的這個標簽是表格最后一行的數(shù)據,哇,亂七八糟,爆炸。
無奈,只能通過最笨的方法,給我們的 span 定義 id ,而且是不同的 id ,用 jquery 獲取 id 對應的元素
<el-table-column width="250" align="center" label="比較基準">
<template scope="scope">
<span :id="scope.row.id">{{getShortStr(scope.row.benchmark)}}</span>
<i v-if="scope.row.benchmark.length>20" @click="changeTxt(scope.row.benchmark,scope.row.id)" style="margin-left:8px;color: #20a0ff;" class="el-icon-more">
</i>
</template>
</el-table-column>
// changeTxt方法:
changeTxt(txt,id) {
this.isAllTxt = !this.isAllTxt;
if(this.isAllTxt){
$('#'+id).text(txt);
}else{
$('#'+id).text(this.getShortStr(txt));
}
}
// getShortStr 方法
getShortStr(txt_origin) {
if(txt_origin.length > 20){
return txt_origin.substring(0,20);
}else{
return txt_origin;
}
}
搞定是搞定了,但是 jquery 和 vue 的風格是不一樣的,混用體驗并不是很好,有好的方法請一定留言告訴我,必定送上一句 謝謝 ?。。?/p>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
window.onresize在vue中只能使用一次,自適應resize報錯問題
這篇文章主要介紹了window.onresize在vue中只能使用一次,自適應resize報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
使用vue2.6實現(xiàn)抖音【時間輪盤】屏保效果附源碼
前段時間看抖音,有人用時間輪盤作為動態(tài)的桌面壁紙,一時間成為全網最火的電腦屏保,后來小米等運用市場也出現(xiàn)了【時間輪盤】,有點像五行八卦,感覺很好玩,于是突發(fā)奇想,自己寫一個網頁版小DEMO玩玩,需要的朋友可以參考下2019-04-04
Vue編寫可顯示周和月模式的日歷 Vue自定義日歷內容的顯示
這篇文章主要為大家詳細介紹了Vue編寫可顯示周和月模式的日歷,Vue自定義日歷內容的顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06

