【问题标题】:$(document).ready(function () { ... won't fire$(document).ready(function () { ... 不会触发
【发布时间】:2014-05-23 15:20:55
【问题描述】:

我的一个视图末尾有以下代码:

@section Scripts {
<script type="text/JavaScript">

    $(document).ready(function () {
        alert("!!!");
    });

</script>
}

无论我做什么,我都无法让它开火。我已经检查并进一步在代码中包含 JQuery。使用suggestion here,我将代码更改为以下内容,以确认 jquery 已正确加载。这给出了“是的!”加载页面时发出警报。

@section Scripts {
<script type="text/JavaScript">

    window.onload = function () {
        if (window.jQuery) {
            // jQuery is loaded  
            alert("Yeah!");
        } else {
            // jQuery is not loaded
            alert("Doesn't Work");
        }
    }
</script>
}

我页面中源代码的结尾如下所示:

<script src="/Scripts/jquery-1.9.1.js"></script>

<script src="/Scripts/jquery-ui-1.8.24.js"></script>

<script src="/Scripts/bootstrap.js"></script>

<script src="/Scripts/breakpoints.js"></script>

<script src="/Plugins/jquery-unveil/jquery.unveil.js"></script>

<script src="/Plugins/jquery-fademenu/jquery.fademenu.js"></script>

<script src="/Plugins/jquery-block-ui/jqueryblockui.js"></script>

<script src="/Plugins/jquery-slimscroll/jquery.slimscroll.js"></script>

<script src="/Plugins/bootstrap-select2/select2.js"></script>

<script src="/Plugins/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>

<script src="/Plugins/dropzone/dropzone.js"></script>

<script src="/Scripts/core.js"></script>

<script type="text/JavaScript">

    $(document).ready(function () {
        alert("!!!");
    });

</script>    

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
    {"appName":"Chrome","requestId":"6301d560dc274f4ea5ec24b8e0c2a19f"}
</script>
<script type="text/javascript" src="http://localhost:50280/1cd42285f06243669b1fd5837f1f05c3/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>
</html>

我不知道哪里出错了......

【问题讨论】:

  • 尝试jQuery(document) 而不是$(document)。也许重新定义了$
  • 按F12在浏览器中打开开发者控制台,检查document.ready版本使用时是否出现错误
  • 你试过在源代码的开头包含脚本吗?例如。在头脑中
  • @KevinB,不太可能,因为第二个 sn-p 正在工作
  • 是的,吸取了教训。感谢大家的帮助。

标签: javascript jquery asp.net-mvc asp.net-mvc-4


【解决方案1】:

如果此代码正常工作

 window.onload = function () {
        if (window.jQuery) {
            // jQuery is loaded  
            alert("Yeah!");
        } else {
            // jQuery is not loaded
            alert("Doesn't Work");
        }
    }

而这段代码没有:

 $(document).ready(function () {
        alert("!!!");
    });

您可能的问题是与美元符号 $ 存在冲突

我会输入 jQuery 而不是使用美元符号,当然你也可以这样做:

var j = jQuery.noConflict();

那么你可以在你以前使用$的地方使用j

或者...只是控制台中的一个错误,您还没有回复,如果是这种情况,我会更新答案

编辑::

您的代码未执行的原因是因为 javascript 在某种意义上很奇怪,如果 javascript 代码块中的任何地方出现错误,那么它下面的任何内容都不会被执行。这就是为什么我问是否有任何控制台错误。检查控制台是解决任何 javascript 错误的第一步。

【讨论】:

    【解决方案2】:

    remove @section Scripts block 仅放置脚本块并尝试...如果没有,则删除所有 js 仅使用 jquery 并尝试肯定会。现在一一添加脚本并找到一个有冲突的脚本。 .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      相关资源
      最近更新 更多