如何解决vue与传统jquery插件冲突


Posted in Javascript onMarch 20, 2017

本篇文章主要介绍了如何解决vue与传统jquery插件冲突,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

比如基于jquery的select2插件,在vue下单独用有很多问题,其实对于这类插件,可以用vue的自定义指令和组件来包装,解决冲突的问题。引用官方vue1.0和2.0的两个例子,学习一下。

 例子1.0  例子2.0

大功告成。说说基于vue1的,对于下拉单选,用vue官方的例子即可,对于多选,看下面自己写的,核心是用指令对象的el、vm等获取被select2改变后的select下拉列表的相应对象,关键点是用jquery包装原生元素后用.val()获取多选值。

<body>
  <div id="el">
   <p>Selected: {{selected}}</p>
   <select v-select3="selected" multiple class="app1" >
    <option value="0">default</option>
    <option v-for="o in options" :value="o.id">{{ o.text }}</option>
   </select>
    
    <p>Selected: {{market}}</p>
   <select v-select3="market" multiple class="app2" >
    <option value="0">default</option>
    <option v-for="o in markets" :value="o.id">{{ o.text }}</option>
   </select>
  </div>
  <script>
    Vue.directive('select3', {
     twoWay: true,
     priority: 1000,

     params: ['options'],
      
     bind: function () {
      var self = this;
      $(this.el)
       .select2()
       .on('change', function () {
        self.set($(self.el).val());
        console.log($(self.el).val());
        if ( self.expression == 'selected') {
          self.vm.market = [];
        }

       })
     },
     update: function (value) {
      
      $(this.el).val(value).trigger('change')
     },
     unbind: function () {
      $(this.el).off().select2('destroy')
     }
    })

    var vm = new Vue({
     el: '#el',
     data: {
      selected: 0,
      market: '',
      options: [
       { id: 1, text: 'hello' },
       { id: 2, text: 'what' }
      ],
      markets: [
        { id: 1, text: '文山二手车' },
        { id: 2, text: '小哥二手车' }
      ]
     }
    });
    setTimeout(function () {
     vm.market = 0;
    }, 0);
  </script>
</body>

另外,在插入默认值的时候,注意做一个异步插入,因为vue更新页面是异步的,这里做了一个setTimeout( , 0)。

另外在单页里,考虑在SSpa的show的时候,设置一状态位vm.isInit,表示若是初始化默认选项,判断onchange里是否触发相关改变的时候不重新设置一些值的清空以及获取 。

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

Javascript 相关文章推荐
在线编辑器的实现原理(兼容IE和FireFox)
Mar 09 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
Jul 31 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
jQuery中可见性过滤器简单用法示例
Mar 31 jQuery
深入浅析Vue中的 computed 和 watch
Jun 06 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
Sep 05 Javascript
基于elementUI实现图片预览组件的示例代码
Mar 31 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 #Javascript
Vue插件写、用详解(附demo)
Mar 20 #Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 #Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 #Javascript
vue.js事件处理器是什么
Mar 20 #Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 #Javascript
Vue.js基础学习之class与样式绑定
Mar 20 #Javascript
You might like
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
两种php实现图片上传的方法
2016/01/22 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
Python实现图像的垂直投影示例
2020/01/17 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
物理教育专业毕业生推荐信
2013/11/03 职场文书
销售业务员岗位职责
2014/01/29 职场文书
财政专业求职信范文
2014/02/19 职场文书
道歉情书大全
2015/05/12 职场文书
百万英镑观后感
2015/06/09 职场文书
公司回复函格式
2015/07/14 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
导游词之桂林
2019/08/20 职场文书
聘任书的格式及模板
2019/10/28 职场文书
Python中for后接else的语法使用
2021/05/18 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python