在代码的编写过程中,出现了绑定的click事件不执行的问题。经研究发现可能有以下三种原因:
###1.click事件没有绑定到目标元素上。
一般利用ele.addEventListener();或者ele.onclick()的方式来绑定事件,就可能出现没有绑定到目标元素的情况。这种情况只需要debugger到事件绑定的代码,检查ele就可以发现。解决这个问题也就很简单了
###2.绑定事件的目标元素层级不够高。
绑定事件的目标元素层级不够就会导致我看见我点击到了目标元素,但实际上被其他层级高的元素阻挡了,实际上只点到了那个层级较高的元素。这个问题只需要在浏览器控制台来改变目标元素的z-index属性为当前页面的最大层级,如果在此时click事件生效了,就肯定是这个问题了。解决这个问题也就只需要改层级就好了。
###3.绑定的事件与其他事件相冲突。
click事件其实就是一次mousedown和mouseup事件的组合,这里就可能会出现你不仅注册了click事件,同时还注册了mouseup事件,然后就只执行了mouseup事件而click事件不执行。这个问题可以申明一个flag变量,然后把click事件的函数在mouseup事件里触发,用flag来判断触发时机。