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.Pin垂直滚动时固定导航
May 24 jQuery
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
详解jQuery中的isPlainObject()使用方法
Feb 27 jQuery
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
jQuery zTree树插件的使用教程
Aug 16 jQuery
jQuery treeview树形结构应用
Mar 24 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记录代码执行时间(实现代码)
2013/07/05 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js 判断脚本加载完毕的代码
2011/07/13 Javascript
对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
2011/07/31 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
django model object序列化实例
2020/03/13 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
如何签定毕业生就业协议书
2014/09/28 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
放假通知怎么写
2015/08/18 职场文书
七年级思品教学反思
2016/02/20 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
python实现MD5进行文件去重的示例代码
2021/07/09 Python
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP