以下 vue2 网站上的教程无法让第三方 jquery 插件 select2 工作

Posted

技术标签:

【中文标题】以下 vue2 网站上的教程无法让第三方 jquery 插件 select2 工作【英文标题】:following tutorial on vue2 website can't get third party jquery plugin select2 to work 【发布时间】:2017-12-28 01:17:38 【问题描述】:

我试图实现这个:

https://vuejs.org/v2/examples/select2.html

虽然我在我的页面中使用了 Vue 组件,但我并没有制作 SPA。

[Vue 警告]:挂载钩子错误:“TypeError: $(...).select2 is not a function”

发现于

我收到此错误

Error in mounted hook: "TypeError: $(...).select2 is not a function"

found in <Select2> at 
C:\laragon\www\lara\resources\assets\js\components\ui\Select2.vue

我在 html 文件中同时包含了 select2 和我的 vuejs:

<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<script src=" asset('js/content_type_blocks.js') ? str_random(7) "></script>

不知道为什么会出现select2不是函数的错误?

【问题讨论】:

你是否也包含了 jQuery? 听起来 jQuery 没有加载。在控制台中输入$jQuery 会发生什么? 是的,我也包含它。我正在使用另一个 jquery 插件颜色选择器,但只有在将其放入 package.json 文件中后才能使该插件工作:“bootstrap-colorpicker”:“^2.5.0”,然后将其作为组件导入到我的应用程序中.vue 使用 import BootstrapColorPicker from 'bootstrap-colorpicker' 然后我就可以使用那个插件了。但我找不到如何像使用 colorpicker 那样在 package.json select2 中安装,因为 select2 似乎不是节点包 您的选择器是否找到了您要选择的内容?你在等待 DOM 准备好吗? 您能否包含 mounted 挂钩中的代码,因为这似乎是发生错误的地方?更好的是,(请记住,您不是在创建 SPA)使用 jsbin、jsfiddle、plunker、codepen 等网站创建 minimal reproducible example... 【参考方案1】:

在Select2插件初始化的时候,jquery还没有加载到全局栈中。


提出几种解决方案:

只需通过 NPM npm install --save select2 添加 Select2 然后导入即可 我建议使用更友好的Selectize.js 此外,还有一个现成的Vue 组件vue2-selectize。另请查看此性能测试:https://jsperf.com/chosen-select2-selectize 您可以尝试使用类似的解决方案,专门为 Vue 编写:https://github.com/monterail/vue-multiselect

【讨论】:

以上是关于以下 vue2 网站上的教程无法让第三方 jquery 插件 select2 工作的主要内容,如果未能解决你的问题,请参考以下文章

vue2压缩图片打包大小

儿童手表不能下载如解决不能adb

相比之前其他几个入门的, 推荐: 简单vue2 入门教程

Vue2.0 学习 第三组 条件语句

vue2.0过度动画

Vue2.0学习—过渡与动画(六十三)