在创建使用JavaScript的任何网站时,我通常会为我的点击侦听器挂钩。这样,如果不支持JavaScript或关闭JavaScript,该网站仍然适用于用户。我将大部分脚本代码放在</body>
附近的文档末尾,以便首先加载内容。唯一的例外是诸如modernizr,谷歌跟踪代码等等。
然而,在这样做的过程中,这意味着在页面上存在锚点的时间段,用户可以在JavaScript加载和附加事件侦听器之前与它们进行交互。
我考虑过为所有锚点添加一些存根,但是我无法找到一种方法使它工作,考虑到如果我的存根脚本在上面,锚点还没有被放到页面上<body>
元素。我认为这是可能的,因为旧的jQuery live()
函数做了类似的事情(我知道现在已经弃用了1.7并删除了1.9)。
我的想法是为所有交互点创建一个什么都不做的存根。在页面加载时将交互点指向它。一切都加载后删除存根并使用完全定义的侦听器。
有没有人在此之前做过这个...或者找到了更好的解决方案?
答案 0 :(得分:1)
我认为这是可能的,因为旧的jQuery live()函数做了类似的事情(我知道现在已经弃用了1.7并删除了1.9)。
我认为这非常接近。它已被.on('EVENT', 'SELECTOR', FUNCTION)
替换。
您可以使用以下内容:
$(document).on('click', 'a', false); // disable all clicks
然后,一旦它完全加载,请关闭处理程序:
$(document).off('click', 'a', false);