jQuery技术

Vue 中使用 jQuery的方法教程

字号+ 作者:H5之家 来源:H5之家 2017-12-14 17:52 我要评论( )

本文主要和大家分享Vue 中使用 jQuery的方法教程,编译报错:$ is undefined or no-undef

本文主要和大家分享Vue 中使用 jQuery的方法教程,编译报错: $ is undefined or no-undef '$' is not defined , 假设你已经使用vue-cli搭建好了开发的脚手架,接下来如下:


安装 jQuery,项目根目录下运行以下代码npm install jquery --savewebpack配置

在项目根目录下的build目录下找到webpack.base.conf.js文件,在开头使用以下代码引入webpack,因为该文件默认没有引用

var webpack = require('webpack')然后在module.exports中添加一段代码// 原有代码resolve: { extensions: ['.js', '.vue', '.json'], alias: {'vue$': 'vue/dist/vue.esm.js','@': resolve('src') } },// 添加代码plugins: [ new webpack.ProvidePlugin({$: "jquery", jQuery: "jquery", jquery: "jquery","window.jQuery": "jquery" }) ],// 原有代码module: { rules: [// ...... ] }

然后许多其他解决办法到此就说在main.js里导入就可以了,然而题主照着做了。main.js里导入jQuery:

import 'jquery'

在Vue组件里使用 $ or jQuery 写了操作dom的代码。接着启动项目:

npm run dev

但是编译却报错了:

'$' is not defined or 'jQuery' is not defined

咋回事呢???

eslint 检查

机智的朋友肯定想到跟eslint有关,没错,这时候需要做的下一步就是要修改根目录下.eslintrc.js文件了,在改文件的module.exports中,为env添加一个键值对 jquery: true 就可以了,也就是:

env: { // 原有 browser: true, // 添加 jquery: true}

再次 npm run dev ,OK了,没报错,赶紧去组件里试一下吧,console.log($(‘选择器’)) ,你会发现成功使用jQuery获取到了DOM。

相关推荐:

本文主要为大家详细介绍了javascript实现循环广告条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

html代码:

<!DOCTYPE html> <html> <head> <title>Rotating Banner</title> <script src="script07.js"></script> <link rel="stylesheet" href="script01.css" rel="external nofollow" > </head> <body> <p class="centered"> <img src="images/reading1.gif" id="adBanner" alt="Ad Banner"> </p> </body> </html>

css代码:

body { background-color: white; color: black; font-size: 20px; font-family: "Lucida Grande", Verdana,Arial, Helvetica, sans-serif; } h1, th { font-family: Georgia, "Times New Roman",Times, serif; } h1 { font-size: 28px; } table { border-collapse: collapse; } th, td { padding: 10px; border: 2px #666 solid; text-align: center; width: 20%; } #free, .pickedBG { background-color: #f66; } .winningBG { background-image:url(images/redFlash.gif); }

js代码:

window.onload = rotate; var thisAd = 0; function rotate() { var adImages = new Array("images/ reading1.gif","images/reading2. gif","images/reading3.gif"); thisAd++; if (thisAd == adImages.length) { thisAd = 0; } document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 3 * 1000);//设置时间,本每隔多长时间改变广告条中的GIF }

在循环广告条中添加链接:修改js的代码

window.onload = initBannerLink; var thisAd = 0; function initBannerLink() { if (document.getElementById("adBanner").parentNode.tagName == "A") { document.getElementById("adBanner").parentNode.onclick = newLocation; } rotate(); } function newLocation() { var adURL = new Array("negrino.com","sun.com","microsoft.com"); document.location.href = "" + adURL[thisAd]; return false; } function rotate() { var adImages = new Array("images/ reading1.gif","images/reading2. gif","images/reading3.gif"); thisAd++; if (thisAd == adImages.length) { thisAd = 0; } document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 3 * 1000);//设置时间,本每隔多长时间改变广告条中的GIF }


相关推荐:

js中的event loop,引出了chrome与node中运行具有setTimeout和Promise的程序时候执行结果不一样的问题,从而引出了Nodejs的event loop机制,本篇文章通过实例给大家详细分析了JS与Node.js中的事件的原理以及用法,希望能帮助到大家。

console.log(1) setTimeout(function() { new Promise(function(resolve, reject) { console.log(2) resolve() }) .then(() => { console.log(3) }) }, 0) setTimeout(function() { console.log(4) }, 0) // chrome中运行:1 2 3 4 // Node中运行: 1 2 4 3

chrome和Node执行的结果不一样,这就很有意思了。

1. JS 中的任务队列

JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。

JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。

为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。

2. 任务队列 event loop

单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JavaScript+jQuery网页前端教程

    JavaScript+jQuery网页前端教程

    2017-12-14 18:00

  • JQuery中模拟image的ajaxPrefilter与ajaxTransport处理

    JQuery中模拟image的ajaxPrefilter与ajaxTransport处理

    2017-12-14 09:01

  • 用JQuery操作元素的style属性

    用JQuery操作元素的style属性

    2017-12-13 16:15

  • jQuery常用特效方法

    jQuery常用特效方法

    2017-12-13 16:14

网友点评