jQuery .on() 绑定事件无效

前几天,要在移动端实现一系列的功能,用 HTML + JS。

按照以往的思路,事件绑定就直接 $(document).on "click", "selector", ()-> 上了。

结果到了移动端打开页面,发现绑定的事件全都没有绑定上,按钮点击无效,滑动不反应。百思不得其解。

后来想了想,难道是因为绑定的时候页面还没有 ready?于是又把事件绑定全都写在了 $(document).ready ()-> 中。

刷新移动端浏览器,问题并没有被解决。

然后我就想到,如果直接在目标元素上绑定事件是否可以成功呢?于是把所有的 $(document).on "click", "selector", ()-> 换成了 $("selector").on "click", ()->,重新打开移动端浏览器,刷新页面,结果真的成了!

难道是冒泡拦截的这种事件处理机制不起作用?于是把之前代码里的 $(document) 全部替换成目标元素的父元素,依旧使用 $("parent").on "click", "selector", ()-> 这样的办法,结果居然也是可以的。

那么看来,就是在移动端上,$(document) 上绑定事件的确是有问题的,也许这只是 jQuery 的一个 bug 也说不定。限于时间,就没有继续深究了。

原文地址:https://www.cnblogs.com/shanpow/p/4112261.html