如何解决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 相关文章推荐
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
Feb 13 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
Nov 03 Javascript
总结十个Angular.js由浅入深的面试问题
Aug 26 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
小程序实现单选多选功能
Nov 04 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 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
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
面试常见的js算法题
2017/03/23 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
详解React中setState回调函数
2018/06/14 Javascript
vue自定义指令之面板拖拽的实现
2019/04/14 Javascript
如何给element添加一个抽屉组件的方法步骤
2019/07/14 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python和php哪个容易学
2020/06/19 Python
百年校庆节目主持词
2014/03/27 职场文书
梅花魂教学反思
2014/04/25 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python