gpt4 book ai didi

javascript - 尽管有 Scripts.Render 顺序,但 Razor 为使用它的自定义脚本生成 jQuery 太迟了

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:44 25 4
gpt4 key购买 nike

我已经问过为什么下面的方法不起作用并得到一个 very clear answer .

<head>
...
<script src="Stuff.js" type="text/javascript"></script>
</head>
<body>
...
@Scripts.Render("~/bundles/jquery")
</body>

所以我把那个改成了这个。

<head></head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Stuff.js")
</body>

但是,我遇到了同样的不当行为。根据链接答案中的诊断,我猜测脚本仍然 没有以正确的顺序呈现。我该如何控制它?我应该将两者都移动到标题吗?

生成的标记是这样结束的。

      </form>
</div>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="Stuff.js"></script>
</body>
</html>

根据要求 - 我正在添加显示脚本的网络选项卡的屏幕截图。还有其他资源(图像和东西),但它们都不是 4xx,没有奇怪的消息,我已经将它们都关闭了,仍然遇到同样的问题。

enter image description here

在 Default.js(以前称为 Stuff.js)中工作。

window.onload = function() {
console.log($(this));
};

在 Default.js 中产生错误(任何行)。

//$(document).ready(function () { alert("ready"); });
$(window).onload(function () { alert("onload"); });

最佳答案

你应该使用

$(window).load(function () { alert("onload"); });

onload 是 JavaScript 原生事件,但在 JQuery 中是加载

详情请引用以下帖子: difference between $(window).load(function() { and $(document).ready(function() {

第二点也是最重要的是你有以下几点

 @RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Stuff.js")

如果您的 View 中有任何 JQuery 调用,假设您需要在主页中调用某些东西,那么 JQuery 库尚未定义。因为 Jquery 在 RenderBody 之后渲染

你需要做的是放置一个 Section 并在加载 Jquery 后呈现该部分

你的布局中应该有以下内容

@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Stuff.js")
@RenderSection("Scripts", required: false)

在您的 View 中,将 javascripts 调用放在该部分

@section Scripts {
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() { alert ('Hi'); });
//]]>
</script>
}

希望对你有帮助

关于javascript - 尽管有 Scripts.Render 顺序,但 Razor 为使用它的自定义脚本生成 jQuery 太迟了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34594386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com