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插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
jQuery回调方法使用示例
Jun 26 jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 jQuery
jQuery实现的页面遮罩层功能示例【测试可用】
Oct 14 jQuery
jquery一键控制checkbox全选、反选或全不选
Oct 16 jQuery
jquery在启动页面时,自动加载数据的实例
Jan 22 jQuery
实现jquery放大镜的两种方法
Feb 22 jQuery
基于jquery实现左右上下移动效果
May 02 jQuery
jQuery 实现倒计时天,时,分,秒功能
Jul 31 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
jQuery实现穿梭框效果
Jan 19 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数组应用之比较两个时间的相减排序
2008/08/18 PHP
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
python3注册全局热键的实现
2020/03/22 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
代理协议书范本
2014/04/22 职场文书
实习科室评语
2015/01/04 职场文书
网络舆情信息简报
2015/07/21 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python