Javascript点击事件触发两次,已经停止传播
Javascript click event fired twice, already stopping proagation
我有一个非常非常奇怪的问题,但我不能在这里复制它,因为我无法追踪是什么生成它,它是一个200多行JS文件的一部分,我将尽力解释它:
我的问题是关于DOM操作,我只使用香草JavaScript。
我有一个元素A
,当你点击它,一个函数被触发来显示一个div的内容,我只是使用addEventListener('click', function(){ ... }, false)
。它的工作原理。
在同一页,我有一个类似的情况,B
。这里的问题是:一旦我第一次点击B
,每次我点击A
,点击元素被触发两次。我在谷歌上搜索过,但我发现的唯一结果都是关于停止事件传播的需要。
我已经这么做了。
让它奇怪的是,这个问题只存在于我第一次点击B
,否则它工作完美。
任何想法?为了更好地理解问题,请提出任何问题。
感谢大家在评论中提出的想法。正如@StefanBaiu所建议的,函数被初始化了两次:
我使用angular来包含内容(它是一个局部视图),所以我正在监听$includeContentLoaded
事件来初始化监听事件的函数。
当点击B
时,我包含了新的内容,导致$includeContentLoaded
再次被触发。
如何解决这个问题:
var pageIncluded = true; // When loading the controller
$scope.$on('$includeContentLoaded', function() {
if (pageIncluded) {
// Inizialize the function
pageIncluded = false;
}
}
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 单击元素两次后执行操作
- AngularJs正在阻止链接被点击两次
- 为什么我的路线处理程序会触发两次
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- 在列表中至少使用两次随机生成的nr
- 检查某个键是否按下两次
- 一次点击,两次'单击'事件已启动
- 我的所有代码在使用Webpack编译时都会运行两次
- Javascript点击事件触发两次,已经停止传播