当前位置:首页 > 日记 > 正文

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

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

本篇文章主要介绍了如何解决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里是否触发相关改变的时候不重新设置一些值的清空以及获取 。

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

相关文章

vue中配置mint-ui报css错误问题的

vue中配置mint-ui报css错误问题的

错误问题,解决方法,配置,电脑软件,vue,在vue2.0中引入了mint-ui后总是报一个css的错误 但是package.json中已经配置了css-loader style-loader ,webpack.config中也已经配置了css,还是报这个错误,相反,如果把webpack.config中css的配置注释掉就…

PS怎么设计一个圆圆可爱的冰球表情

PS怎么设计一个圆圆可爱的冰球表情

冰球,表情,可爱,电脑软件,PS,想要设计一个圆形的冰球表情,夏天看冰冰的东西比较有食欲,该怎么设计呢?下面我们就来看看详细的教程,很简单,需要的朋友可以参考下。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11…

win10系统中CDRX6菜单变白色不显示

win10系统中CDRX6菜单变白色不显示

系统,显示,菜单,白色,电脑软件,相信很多同学安装了win10系统之后,你的 CDR 菜单栏就变了,变得没有任何内容,以白色显示,win10系统与CorelDRAW早期的版本兼容方面存在问题,(CorelDRAW x7/X8无此问题出现)。如果你还在使用CorelDRAW X6或更早版本的…

jquery封装插件时匿名函数形参和实

jquery封装插件时匿名函数形参和实

匿名函数,插件,封装,形参,解释, 在jquery插件中我们经常看到以下这段代码;(function ( $, window, document, undefined ){//函数体内具体代码})(jQuery, window,document);1、代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一…

jquery+css实现简单的轮播效果

jquery+css实现简单的轮播效果

效果,简单,电脑软件,jquery,css,开发过程中需要用到图片轮播的插件,在网上找了几个插件之后还是决定自己码一个,比较简洁的功能,以后说不定还会有用。ps: 功能比较简单,整个框并不能根据图片的大小自动调节,这里所用的图片是1170*500的,如果需要改…

Word中进行2013版更改页面颜色的操

Word中进行2013版更改页面颜色的操

操作方法,颜色,页面,操作步骤,电脑软件,  word如何更改页面颜色是可以更改的,怎么该呢?今天,小编就教大家在Word中进行2013版更改页面颜色的操作方法。Word中进行2013版更改页面颜色的操作步骤打开word文档:选择设计菜单:找到页面颜色:选择你…

PHP从数组中删除元素的四种方法实

PHP从数组中删除元素的四种方法实

方法,删除元素,四种,组中,实例,茴香豆的“茴”字有四种写法,PHP从数组中删除元素也有四种方法 ^_^。删除一个元素,且保持原有索引不变使用 unset 函数,示例如下:<?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1])…

ps中怎么设计带有纹理的3d立体字?

ps中怎么设计带有纹理的3d立体字?

立体字,纹理,3d,电脑软件,ps,刚下载了哥cs6,发现里面有3d功能,所有自己研究了一下。自己制作了哥3d立体字,感觉挺方便的,所有介绍给大家。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、打开ps,新建一个R…

Vue resource中的GET与POST请求的

Vue resource中的GET与POST请求的

实例代码,请求,电脑软件,Vue,resource,前言:vue-resource 使用比 jQuery 更加简洁的方式实现了异步请求功能,还提供了比如 interceptors 这样处理请求过程中行为的功能。下面介绍下vue-resource中常用的GET与POST请求使用与封装方法。访问 Gi…

微信指纹支付如何设置

微信指纹支付如何设置

支付,指纹,如何设置,电脑软件,  自微信升级版本以后,为大家带来了不少新功能,比如二维码收款、声音锁等。其实在支付方面也有新的突破,那就是很早以前传出的指纹支付。也就说除了支付宝、京东钱包以外,微信也加入了指纹支付的行列。本文将为…

Angularjs实现搜索关键字高亮显示

Angularjs实现搜索关键字高亮显示

显示效果,搜索关键字,电脑软件,Angularjs,高亮,需求分析:根据关键字搜索网页内容,并且高亮显示内容中的关键字细节分析: 1、每次执行搜索操作,需清空上一次结果2、需区分html标签和正常文本内容,否则为关键字添加样式以后会出现标签内容被显示…

在word2013中插入稿纸的方法步骤

在word2013中插入稿纸的方法步骤

方法,步骤,稿纸,方格,电脑软件,  编辑word文档时,有时需要插入半页稿纸,尤其是写作文时,前面写完作文要求之后,就需要在本页插入稿纸。那么怎么在word2013中插入稿纸呢?为此小编给你准备了插入稿纸的方法教程,希望对你有帮助!Word2013插入稿纸…