首页 > 解决方案 > JQuery/Javascript-Doc Ready 函数与上次加载的脚本文件/加载顺序有关吗?- 新手问题

问题描述

我只是从 Jquery / Javascript 开始,所以希望这不会引起“你怎么不不是那个群体”的太多愤怒:-)

我一直在尝试我在网上看到的各种 Jquery 插件等,并尝试按照他们在网上找到的演示来实现它们。

我一直在 std Visual Studio MVC Web 模板等中使用这些测试/示例。

我遇到了一些奇怪的行为,这就是我发布这个问题的原因。

在网络上的大多数示例中,它们引用了许多需要加载以支持插件的附加脚本 - 例如,我一直在使用一个简单的网格,它有自己的 js 文件,因此需要在页面中加载.

大多数(如果不是全部)这些样本然后使用 Document Ready 事件/函数来用数据填充样本。

在我使用的一些示例中,这些都不起作用,它似乎是 MVC 模板告诉页面在页脚中加载脚本和 Document Ready 函数/事件在 A JS 文件中查找函数的组合找不到。

我已经通过修改/重新排列 MVC 模板来使其工作,现在将页脚脚本加载到页面的标题中。

所以问题/问题是。

Document Ready 是否在最后加载的脚本的上下文中运行?如何加载脚本并为其赋予别名?是否可以通过使用类似于 using 别名的东西来处理这些脚本类似于 C# 模型?

然后将该函数寻址为 ALIASXXX.createsampledata()

作为一个附加问题,如果这些页面需要不同的脚本和/或脚本具有相同的函数名称,我可以看到这可能会导致母版页/部分页面出现问题。

抱歉,这个问题应该被称为“JQuery 到底是如何工作的?”

也许更多的解释?在场景 1 中:Std 模板 MVC 标头 - 加载脚本 1、2、3 新页面 - 在文档中加载添加脚本 - $('#mytable').createTable(dataw, {}); 页脚 - 加载更多脚本

结果是错误 CreateTable not found 等

在场景 2 中:修改页眉 - 加载脚本 1、2、3 并移动页脚脚本新页面 - 加载文档中的添加脚本 - $('#mytable').createTable(dataw, {});

结果 = OK 加载顺序有所不同

标签: javascriptjqueryasp.net-mvc-4partial-viewsdocument-ready

解决方案


https://api.jquery.com/ready/

According to the documentation, the document's ready fires when the DOM is ready, rather than scripts, meaning that it has been the case that some handlers bound after that will not fire as the document.ready happened before they were listening. However they do also say that as of JQuery 3, .ready( handler ) will fire if DOMContentLoaded has already happened.

Create grid with .ready() handler

Put stuff in grid with function call at end of that handler

????

Profit

TL;DR

$(document).on( "ready", handler ) is deprecated, $( document ).ready( handler ) is recommended.


推荐阅读