页面加载时使用JavaScript的劫持点击事件
Hijack click event with JavaScript whilst page loads
在创建任何使用JavaScript的网站时,我通常会为我的点击侦听器挂接锚点。这样,如果JavaScript不受支持或被关闭,该网站仍将对用户有效。我将大部分脚本代码放在文档末尾</body>
附近,以便首先加载内容。唯一的例外是modernizr、谷歌跟踪代码等。
然而,这样做意味着在JavaScript加载并附加事件侦听器之前,页面上存在锚点的时间段是用户可以与锚点交互的时间段。
我曾想过在所有锚中添加一些存根,但考虑到如果我的存根脚本位于<body>
元素上方,则锚还没有放在页面上,我想不出一种方法来实现它。我认为这是可能的,因为旧的jQuery live()
函数做了类似的事情(我知道现在已经弃用了1.7,并删除了1.9)
我的想法是为所有交互点创建一个无所事事的存根。当页面加载时,将交互指向它。加载完所有内容后,移除存根并使用完全定义的侦听器。
以前有人这样做过吗。。。还是有更好的解决方案?
我认为这是可能的,因为旧的jQuery live()函数做了类似的事情(我知道现在已经弃用了1.7,并删除了1.9)
我觉得很接近。它已被.on('EVENT', 'SELECTOR', FUNCTION)
取代。
你可以使用类似的东西:
$(document).on('click', 'a', false); // disable all clicks
然后,一旦它完全加载,就将处理程序取下:
$(document).off('click', 'a', false);
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 在移动设备上打击触摸事件,劫持正常滚动
- 一个Vimeo<iframe>嵌入劫持滚动/滑动事件
- Nokia Here劫持了windows的dommousesscroll事件
- 修复劫持事件处理点击事件
- 有可能“劫持”吗?并延迟文档准备事件处理程序
- 页面加载时使用JavaScript的劫持点击事件