按钮变色绑定函数首次调用失效:onload正常onclick异常原因咨询
问题分析:两种
loop()调用方式导致按钮点击无效的原因 核心差异在于loop()的执行时机
你的loop()函数核心作用是给所有字母按钮绑定点击事件,只有当loop()执行完成后,按钮才具备触发变色和赋值的能力。两种调用方式的本质区别是loop()的执行时机:
放在
body.onload中调用:页面加载完成后立即执行loop(),所有字母按钮的点击事件提前绑定完毕。此时无论何时点击按钮,事件都已存在,功能自然正常。放在div的
onclick中调用:只有点击该div时,loop()才会执行,按钮的点击事件才会被绑定。而你首次操作是点击字母按钮,这个操作不会触发div的onclick,loop()根本没机会执行,按钮此时没有绑定任何点击事件,所以不会触发变色和赋值逻辑。只有先点击div让loop()执行一次,之后再点击字母按钮才会生效。
验证方式
你可以做个简单测试:先点击绑定了loop();compare()的div,再点击字母按钮,此时按钮就能正常变色和赋值,这也能印证上述的时机问题。
内容的提问来源于stack exchange,提问作者MATTHEW28Z _
相关产品推荐
相关产品推荐

