首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Vue如何覆盖jQuery事件侦听器

Vue如何覆盖jQuery事件侦听器
EN

Stack Overflow用户
提问于 2018-11-09 12:08:53
回答 1查看 541关注 0票数 0

我读到过jQuery和Vue在一起工作得不太好。https://vuejsdevelopers.com/2017/05/20/vue-js-safely-jquery-plugin/)。由于我有一个大型的jQuery应用程序,我正在逐步将Vue融入其中,我想了解引擎盖下面发生了什么,这样我就可以避免冲突了。

下面是一个简化的测试页面:

代码语言:javascript
运行
AI代码解释
复制
$('#a').click(function() {
  alert('a');
});

$(function() {
  $('#b').click(function() {
    alert('b');
  });
});

var app = new Vue({
  el: '.container',
  mounted: function() {
    $('#c').click(function() {
      alert('c');
    });
  }
});

$('#d').click(function() {
  alert('d');
});
代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <button id="a">a - jQuery immediate</button>
  <button id="b">b - jQuery DOM ready</button>
  <button id="c">c - jQuery inside Vue mounted</button>
  <button id="d">d - jQuery after Vue</button>
</div>

如您所见,第一个(a)事件侦听器被Vue清除,而其他三个事件侦听器( by )继续工作。

我的问题归结为,在技术层面上,Vue对(a)项所做的与(b)或(d)项不同的是什么?

CodePen这里: https://codepen.io/MSCAU/pen/PxzQNq

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 12:27:27

问题是,.container ( el)在beforeMount事件触发后立即被Vue替换,而在mounted事件触发之前被Vue替换。您可以在这里看到一个图表:

(参考文献)

为了说明:

代码语言:javascript
运行
AI代码解释
复制
const a = document.querySelector('#a')
const app = new Vue({
  el: '.container',
  beforeMount: () => {
    console.log(a === document.querySelector('#a'));
  },
  mounted: function() {
    console.log(a === document.querySelector('#a'));
  }
});
代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div class="container">
  <h1>Vue vs jQuery</h1>
  <button id="a">button</button>
</div>

正如您所看到的,原始a就在beforeMount之后,就在mounted之前丢失了。效果就像容器的innerHTML被改变了一样,例如

代码语言:javascript
运行
AI代码解释
复制
document.querySelector('.container').innerHTML += ' ';
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53232661

复制
相关文章
laravel安装后访问页面空白【php】
一、原因是日志无写入权限。 执行 chmod -R 777 storage即可 二、在index.php文件的最上方echo "a";exit; 没问题可以输出 三、修改php.ini配置 ==display_errors== 是调试模式 从 Off 改成 On 四、ngxin解析问题
sinnoo
2020/11/13
2.4K0
Linux上安装Tomcat后,远程访问不了
1.上传apache-tomcat-7.0.82.tar.gz到Linux上 2.解压tomcat tar -zxvf apache-tomcat-7.0.82.tar.gz -C /usr/local/ 3.启动tomcat /usr/local/apache-tomcat-7.0.82/bin/startup.sh 4.查看tomcat进程是否启动,执行 jps 4085 Jps 3698 Bootstrap 5.查看tomcat进程端口 netstat -anpt | grep 3698
sparkle123
2018/04/26
4.1K0
解决WordPress网站搬家更改新域名后网站无法正常访问的问题?
较的简单,很多的新手wordpress站长因为刚刚接触到wp还不久,可能并不清楚,我们今天就给大家分享和总结几个方法可以自由选择的;
wordpress建站吧
2021/12/22
3.8K0
解决WordPress网站搬家更改新域名后网站无法正常访问的问题?
CentOS 7安装部署Apache网站后配置详解
在一台CentOS 7上搭建Apache网站后,一般都是允许所有人访问的,那么可能会有一些特殊情况,需要对访问网站的人进行限制,出于这种情况,Apache可以通过Require配置项,来对客户端进行一些访问限制,可以基于IP地址、网段、主机名或域名。使用名称“all”时表示任意地址。
星哥玩云
2022/07/26
1.1K0
Windows安装完安全狗后网站打不开
这种情况是新安装的安全狗阻止了IIS执行PHP等程序引起的。我们需要添加应用程序白名单后才能使用。
用户1685462
2021/08/05
1.8K0
安装SSL证书会拖慢网站访问速度吗?
随着网络安全意识的提高,越来越多的网站开始采用SSL证书来保护用户数据的安全性。然而,一些人担心安装SSL证书会导致网站的访问速度变慢。本文将解释SSL证书的工作原理,并讨论SSL证书对网站访问速度的影响。同时,我们还将提供一些减小SSL证书影响的方法,以帮助读者更好地理解和管理SSL证书。
海拥
2023/06/27
5400
安装SSL证书会拖慢网站访问速度吗?
宝塔面板使用问题记录【强制HTTPS】后网站无法访问
家庭宽带申请的公网 IP,80 和 443 端口被封锁,无法直接通过公网访问。希望如果 443 端口可访问,则优先使用。如果 443 端口不可访问,则使用 8443 端口。
铭心
2025/01/14
3721
网站数据增多 访问量增大后 扩容增配还是动静分离?
网友说自己的小型网站部署服务器上,随着网站数据增多、访问量变大后,用什么办法解决大流量访问,扩容增配置还是动静分离呢?这个问题对于很多站长来说是一个挺纠结的问题。业务在高速增长中,传统的方法是扩容增配,CPU/内存/带宽等等都是扩容的对象。那么现在随着云服务器的普及率越来越高,也可以利用动静分离的办法来解决这个问题。本文中魏艾斯博客说一下整体思路,有了思路再去操作就容易很多了。
魏艾斯博客www.vpsss.net
2019/07/11
3.4K0
网站数据增多 访问量增大后 扩容增配还是动静分离?
打补丁后ASP.NET网站不能访问的解决方法
为了简单,我一直用webservice提供对外接口,dotNetFramwork版本为2.0,一直运行得好好的,最近,服务器上的360安全卫士提示有新的补丁,习惯性的打上了,重启后,webservice再也无法访问,浏览器提示:
习惯说一说
2019/08/05
1.4K0
打补丁后ASP.NET网站不能访问的解决方法
访问的网站,搜索网址后的前缀有“不安全”的提示,还能访问吗?
首先,这种提示通常意味着网站没有使用HTTPS加密协议,而是采用了HTTP明文协议进行通信。在HTTP协议下,用户数据是以明文形式传输的,这使得数据在网络中传输时面临被截取和盗用的风险。因此,浏览器会发出“不安全”的警告,以提醒用户注意信息安全问题。可能会遇到如下图所出现的情况。不同浏览器不同版本,显示会有差异。
杨我名
2024/03/25
4190
访问的网站,搜索网址后的前缀有“不安全”的提示,还能访问吗?
[NGINX]禁止IP访问网站
在配置文件中添加以下内容 server { listen 80 default; server_name _; return 403; #或者添加 rewrite /^ https:www.ucbk.cn; } 最后重启nginx systemctl reload nginx
云计算小黑
2021/06/16
6.7K0
更换web默认80端口后,如何不加端口号访问网站
国内购买域名后如果想要将域名解析到国内服务器,就必须要备案,否则就会出现域名未备案的提示(如下图),长期保持这种状态还会被管局停止解析。
用户6948990
2025/04/03
850
更换web默认80端口后,如何不加端口号访问网站
为什么网站安装SSL证书后HTTPS还是不能访问
推荐链接:https://cloud.tencent.com/developer/article/2464989
小胡同学
2024/11/12
5380
【网站优化经验】加快网站访问速度
当我们用国内服务器自信满满地搭建好又一个wordpress站点时,当你准备着手为你的博客添砖加瓦时,你却发现,wordpress原生博客的响应速度让你怀疑人生,你望向窗外,看着这高楼耸立,熙攘喧哗,到处充满浮躁的城市,你不禁陷入了人与自然与世界问题的大思考。
幻影龙王
2021/09/11
3.5K0
【网站优化经验】加快网站访问速度
Fedora 28 Server 安装 LNMP 重启系统后 Web 无法访问
刚安装完 LNMP 访问正常,重启 Fedora 28 系统之后,发现Web无法访问了,重启 LNMP 一切正常,所有服务都是运行状态,网上查了一下,怀疑是防火墙问题,关闭iptables,原来Fedora服务器版本里面的防火墙原来是firewall,关闭之后正常。
星哥玩云
2022/07/14
1.2K0
8种基于文件的Linux备份解决方案
本文介绍了8种基于文件的Linux备份解决方案,包括Bacula、Amanda、Duplicity、BackupPC、rdiff-backup、sbackup、afbackup和BitCalm。这些方案提供了不同的方法来备份和恢复文件,以确保数据的安全和完整。其中一些方案是基于网络的工具,而另一些则是基于桌面的工具。这些工具都具有高效、易于配置和使用的特点,是Linux系统上备份和恢复数据的好选择。
神话_Tyrannosaurus
2018/01/02
3.6K0
用户如何使用域名访问网站?为什么要通过域名访问网站?
访问网站有很多种方式,既可以通过ip地址访问网站,也可以通过域名访问网站。基于很大一部分人不知道如何使用域名访问网站,下文将为大家介绍通过域名访问网站的方法。
用户8715145
2021/08/20
20.8K0
如何测试网站打开速度(网站访问速度)
网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别人的网站更快一步的话,那么你就是获得更好的排名。那么下面就赶快测试你的网站,提高网站访问速度吧。
全栈程序员站长
2022/08/02
6.2K0
学员笔记 | 网站访问原理
用户在浏览器中输入网址,请求经局域网的交换机与路由器进入因特网并通过DNS服务器转化为可以访问的ip地址;之后请求通过企业的防火墙经企业的路由器与交换机到达web服务器。同时企业个人电脑也连接在企业的交换机上与外界进行通信。
HACK学习
2019/08/07
1.4K0
nginx配置网站访问密码
有时候我们需要对网站的访问进行权限认证。普遍的做法是做一个登录验证功能,可如果是静态博客,就没办法通过后端程序进行验证。这种情况下,可以用nginx的 ngx_http_auth_basic_module 模块进行登录验证。
章鱼喵
2019/08/24
2.2K0

相似问题

停电后不得上网

10

安装后如何访问phpMyAdmin?

30

我不得不安装xrtream用户界面

10

在Ubuntu20.04上安装backuppc并遇到下载和编译问题?

10

软件更新后,网站无法访问。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档