如果不在 onLoad 函数中,jQuery 事件处理程序不起作用

jQuery event handler not working if not in the onLoad function

本文关键字:jQuery 事件处理 程序 不起作用 onLoad 函数 如果不      更新时间:2023-09-26

我有这个脚本:

<script>
    window.onload = function() {
        setTimeout(function() {
            $($('div')).css('background-color', 'yellow')
        }, 3000)
        $('div').eq(0).draggable()      
        $('p').click(function() { 
            $(this).css('background-color', 'gray') 
        })
        $('p').click(function() { /* *** */
            console.log($(this).offset()) 
        })   
    }
</script>

如果我将标记为***的行移动到下面,而不是在要调用的onLoad函数内,它就不再起作用了。

文档加载后如何调用 jQuery 代码?(完整示例页: http://pastebin.com/6zHipk4i (

onload

加载对象后立即触发,而jQuery的ready()在检测到所有资产都已加载时触发。如果需要,可以在正文上使用unload,以便在页面完全加载时执行。但是,如果你使用的是jQuery,最好用jQuery的方式做:

$(document).ready(function(){
    $('p').click(function() { console.log($(this).offset()) } );
});

或者你有时会看到同样的东西写成:

$(function(){
     $('p').click(function() { console.log($(this).offset()) } );
});