首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么从Blanket.js启用覆盖会导致点击触发器激活两次?

为什么从Blanket.js启用覆盖会导致点击触发器激活两次?
EN

Stack Overflow用户
提问于 2014-06-13 23:56:33
回答 2查看 353关注 0票数 1

我有一组QUnit测试,它们自己运行并通过,没有任何问题。然而,当我最近添加了Blanket.js来测量javascript代码覆盖率以帮助查找测试中的漏洞时,突然间我有几个测试失败了。散播一些警报来帮助我定位发生了什么。我发现我所有的失败测试都是使用在状态之间切换的函数上的单击事件。这些测试被切换了两次。我已经研究了什么可能会导致触发器的双重激活,但在我的代码中,函数没有绑定两次,而且我只在头文件中包含了一次javascript文件。

我确实注意到,在Firebug中,Blanket.js会向我正在测试的脚本发出GET请求。GET请求会不会是第二次绑定函数,或者这种双重激活是否还有其他原因?

EN

回答 2

Stack Overflow用户

发布于 2014-12-11 03:28:30

在毛毯的引擎盖下发生了很多事情。据我所知,它本质上是评估你告诉它的代码。因此,任何只会“运行”的东西都将通过加载到DOM中进行一次计算,并在blanket对其进行计算时进行一次计算。

票数 1
EN

Stack Overflow用户

发布于 2015-01-10 17:57:09

因为Blanket将在data-cover-only 中再次加载匹配模式的页面脚本来分析脚本覆盖率,所以您的所有脚本将再次执行,这可能会绑定您的单击事件两次。

你可以在Chrome Dev tools的网络面板中看到它,你会看到这样的请求:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24209463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档