Is it bad to have nested click handlers?(有嵌套的点击处理程序是不是不好?)
本文介绍了有嵌套的点击处理程序是不是不好?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有人曾经向我提到过这一点,但我从未找到任何支持这一说法的文档。在应用程序中嵌套点击处理程序是不是很糟糕?例如:
$("div").on("click", function(){
//*Do things*
$("p").on("click", function(){
//*Do things*
})
})
如果这是不好的做法,原因是什么,更好的解决方案是什么?
推荐答案
是的,通常很糟糕,除非这正是您想要的?
如果有人单击一个div两次,该段落的事件处理程序会附加两次,做两次"事情",尝试一下
$('div').on('click', function() {
$('p').on('click', function() {
alert('This is annoyning');
});
});
<script src="aHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29tL2FqYXgvbGlicy9qcXVlcnkvMi4xLjEvanF1ZXJ5Lm1pbi5qcw=="></script>
<div>click me a few times ?</div>
<br /><br /><br />
<p>... then click me</p>
更好的解决方案是不嵌套事件处理程序
var isClicked = false;
$('div').on('click', function() {
isClicked = true;
});
$('p').on('click', function() {
if (isClicked) // do stuff
});
(简化为说明概念,不使用全局变量,jQuery有data()
)
这篇关于有嵌套的点击处理程序是不是不好?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:有嵌套的点击处理程序是不是不好?
猜你喜欢
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01