Vue+jquery实现表格指定列的文字收缩的示例代码


Posted in jQuery onJanuary 09, 2018

本文介绍了Vue+jquery实现表格指定列的文字收缩的示例代码,分享给大家,具体如下:

Vue+jquery实现表格指定列的文字收缩的示例代码

效果很简单,但是写起来真的不容易,因为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时代开发的经验,在点击事件中传入 $(this) ,手动改dom

(前提是项目配置了jquery,请转头看:https://3water.com/article/115161.htm,上去,自己动。哦不,自己动手把它配好)

changeTxt($(this))

changeTxt(ref) {
  ref.text(XXX);
}

结果当然是错误:

Vue+jquery实现表格指定列的文字收缩的示例代码

那底下就有同学说是不是jquery导错了???

当然也不是,这里的 this 并不是 dom 的 this,是vue的vm对象,不信的可以在方法中用jquery的 $ 试一下,并不是jquery的锅。

那又有爱思考的小伙伴说我用直接用 this 可以么 ?

changeTxt(this)

Vue+jquery实现表格指定列的文字收缩的示例代码

得到的并不是当前元素的对象,这条路又不通。

那vue中是怎么得到元素的对象的呢???

给元素定义 ref

<span ref="txt">{{getShortStr(scope.row.benchmark)}}</span>

方法中通过 this.$refs['txt'].text(XXX) 改变dom,嗯?

Vue+jquery实现表格指定列的文字收缩的示例代码

引用返回的是什么 ??? 没法操作啊 ,而且返回的这个标签是表格最后一行的数据,哇,乱七八糟,爆炸。

无奈,只能通过最笨的方法,给我们的 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 的风格是不一样的,混用体验并不是很好,有好的方法请一定留言告诉我,必定送上一句 谢谢 !!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
jQuery操作css样式
May 15 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
jQuery实现模糊查询的方法分析
May 10 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
JQuery省市联动效果实现过程详解
May 08 jQuery
详解jQuery的核心函数和事件处理
Feb 18 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 #jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 #jQuery
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 #jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 #jQuery
jQuery+CSS实现的table表格行列转置功能示例
Jan 08 #jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 #jQuery
jQuery中库的引用方法
Jan 06 #jQuery
You might like
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
2017/05/23 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
.net笔试题
2014/03/03 面试题
实习生单位鉴定意见
2013/12/04 职场文书
工作个人的自我评价
2014/01/14 职场文书
工作时间上网检讨书
2014/02/03 职场文书
2014会计年终工作总结
2014/12/20 职场文书
公积金具结保证书
2015/05/11 职场文书