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中关于bind()方法的使用技巧分享
Mar 30 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
Aug 24 jQuery
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
jquery插件开发模式实例详解
Jul 20 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 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采集时被封ip的解决方法
2010/08/29 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
php发送get、post请求的6种方法简明总结
2014/07/08 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JavaScript中匿名函数用法实例
2015/03/23 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
2018/11/16 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
Python删除windows垃圾文件的方法
2015/07/14 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
酒吧副总经理岗位职责
2013/12/10 职场文书
八项规定整改方案
2014/02/21 职场文书
初三班主任寄语大全
2014/04/04 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
javascript函数式编程基础
2021/09/15 Javascript