【问题标题】:jQuery code document ready is not executed on the page, only from the browser consolejQuery code document ready 不会在页面上执行,只能从浏览器控制台执行
【发布时间】:2014-02-14 18:37:55
【问题描述】:

我很好奇为什么页面加载时没有执行下面的代码。它在页面中。

<script>
    if (typeof jQuery != 'undefined'){
        jQuery(document).ready(function($) {
            $("#mydiv .myclass:odd").css('color', 'green');
        });
    }
</script>

并且此代码在页面(同一页面)加载后从浏览器控制台执行:

jQuery(document).ready(function($) {
    $("#mydiv .myclass:odd").css('color', 'green');
});

很遗憾,我无权访问该页面的代码,也无法修改它。但是我需要一个答案。

可能是什么原因? 谢谢。

【问题讨论】:

    标签: javascript jquery document document-ready


    【解决方案1】:

    我猜有不必要的参数。应该是:

    $(document).ready(function() {
        $("#mydiv .myclass:odd").css('color', 'green');
    });
    

    如果您与其他库有任何冲突,请在无冲突模式下使用 jQuery:

    var $j = jQuery.noConflict();
    
    $j(document).ready(function() {
        $j("#mydiv .myclass:odd").css('color', 'green');
    });
    

    【讨论】:

    • 在这种情况下,它说 TypeError: Object # has no method 'ready' 这意味着 $ 变量被另一个框架重写,这是真的。
    • 哦,好的。您可以将var $j = jQuery.noConflict(); 添加到脚本顶部,然后使用$j(document).ready(function() ... 以避免冲突。
    • 谢谢。请您解释一下为什么我在这种情况下在浏览器控制台中执行代码没有冲突?
    • 这取决于代码。您可以通过在脚本中的调用之前添加console.log($); 来检查导致冲突的原因并检查您的控制台。
    【解决方案2】:
    $(document).ready(function() {
        $("#mydiv .myclass:odd").css('color', 'green');
    });
    

    请使用上面的代码并在 html 文件中添加 jquery.js 以便它能够理解 $ 参数。或添加 var $j = jQuery.noConflict();

    【讨论】:

    • 在浏览器控制台中没有执行我上面描述的代码,没有错误也没有冲突,这意味着 jquery.js 在 html 文件中吗?谢谢。
    • 请检查您的html文件中是否添加了jquery.js文件?
    • 是的。谢谢。
    • 您的
    • 如果你可以在body标签中使用onload,然后尝试执行这段代码,它就会运行,因为这只会在jquery文件完全加载时运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    相关资源
    最近更新 更多