Jquery文档准备好不在2+中触发,文档加载不触发

时间:2014-02-04 19:43:26

标签: jquery

我无法触发document.load事件,而在jQuery 2+中,我无法获取文件。如何使document.ready在jQuery 2+中工作,如何使.load工作? 谢谢!

小提琴http://jsfiddle.net/2x7SP/2/

    (function($) {
$(document).ready(documentReadyFunction);
$(document).load(afterPageLoad);

function documentReadyFunction() {
  $('#readytext').val('READY');
}

function afterPageLoad () {
  //alert ('loaded');
  $('#loadtext').val('LOAD');
}

})(jQuery);

3 个答案:

答案 0 :(得分:3)

load事件由窗口触发,而不是由文档触发。通过更改它,它工作正常。

代码:

(function ($) {
    $(document).ready(documentReadyFunction);
    $(window).load(afterPageLoad);

    function documentReadyFunction() {
        $('#readytext').val('READY');
    }

    function afterPageLoad() {
        //alert ('loaded');
        $('#loadtext').val('LOAD');
    }

})(jQuery);

jQuery 2放弃了对旧版IE http://blog.jquery.com/2013/04/18/jquery-2-0-released/的支持:

  

正如所承诺的,这个版本留下了旧的Internet Explorer 6,   7和8个浏览器。作为回报,它更小,更快,并且可以用于   JavaScript环境,其中旧IE兼容性所需的代码   经常引起自己的问题。但是不要担心,jQuery团队   仍然支持在IE 6/7/8上运行的1.x分支。你可以(和   应该继续在网上使用jQuery 1.9(以及即将发布的1.10)   需要适应旧浏览器的网站。

如果你需要支持IE< 9,你必须切换到jQuery 1.x。

参考:http://jquery.com/browser-support/

演示:http://jsfiddle.net/IrvinDominin/7CpF7/

答案 1 :(得分:2)

有两个问题:

  1. 没有document.load这样的东西。 load事件仅由与网址关联的元素(例如图片或iframe)或window对象(可能是您要使用的对象)触发。
  2. 在小提琴中,jQuery包含在load处理程序中,这意味着load已经被解雇。
  3. 只要您将document.load替换为window.load

    ,代码就可以了
    $(window).load(afterPageLoad);
    

    不要将jQuery包装在load事件中。固定小提琴:http://jsfiddle.net/tNUv2/

答案 2 :(得分:1)

这对我有用:

function documentReadyFunction() {
    $('#readytext').val('READY');
}

function afterPageLoad() {
    $('#loadtext').val('LOAD');
}

$(document).ready(documentReadyFunction);
$(window).load(afterPageLoad);

Fiddle