javascript - asp.net 2.0 站点和 <script/> 标记的位置导致问题/冲突

标签 javascript jquery asp.net jquery-ui script-tag

我不知道如何准确/智能地描述这一点,因为这似乎是完全不可能的,但肯定有一些原因。

如果我包括我的 <script/>我的 <head/> 底部的标签element 我在尝试调用 .slider() 扩展来配置我的 slider 时遇到错误。但是如果我把 <script/>在我的 <body/> 关闭之前的标签元素然后一切正常。为了说明,以下将不起作用(显然是下面的一些伪代码):

  <head>
    <script jquery.js/>
    <script jquery-ui.js/>
  </head>
  <body>
     ... html ...
     <script type="text/javascript">
       $(document).ready(function () {
           $(".slider").slider( { .. options .. } );
       } )
     </script>
     ... more html *including* the .slider elements
  </body>

但是,如果我将两个 jQuery 脚本标签移动到 </body> 的正上方关闭元素工作。当脚本标记位于 head 元素中并且我调试我的应用程序时,基本上页面 确实 似乎已完全加载并且 Visual Studio 突出显示调用 .slider() 函数的行说它不知道什么 slider() 是。查看调用堆栈,它似乎从文档就绪函数中正确地调用了它...所有标记似乎都在那里,让我相信文档确实已准备就绪。

现在我没有在伪代码中包含 asp.net 1.1/2.0 站点所需的内容,即 <form/>带有 runat="server' 的元素和 <asp:ScriptManager/> 标签的使用(我们需要它来解析来自不同文化的货币值(value),利用 Microsoft Ajax)。我不敢相信他们会导致问题,但也许他们是。另外, asp.net 注入(inject)了几个它自己的脚本部分(即用于验证、回发等)

关于表单标签...所有 html 和 document.ready 标记都在表单标签内部,而脚本标签总是在表单标签之外(在它上面,在头部或在它下面在 body 底部)。

显然我可以将脚本标记留在底部,我很可能最终会这样做,但我正在尝试获得一个干净的“模板站点”以在创建新的客户站点时使用它,但感觉不对我有一个限制,迫使我将这些标签放在 html 的底部。我确信我们的框架代码(或者可能是 asp.net 的)只是插入了一些导致问题/与 jQuery 冲突的东西,但我真的不知道如何去调试/诊断那个问题是什么。因此,如果有人有任何建议,我将不胜感激。

最佳答案

看起来 jQuery 1.3.2 正在由 ASP.NET 加载(请参阅您的第二个 WebResource.axd)。这两个库版本正在相互覆盖。因此,当您在页面末尾加载 1.6.2 时它起作用的原因。

关于javascript - asp.net 2.0 站点和 &lt;script/> 标记的位置导致问题/冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200872/

相关文章:

javascript - 放大或缩小事件

javascript - AngularJS 中的重型 Controller 通信

javascript - NPM 安装后找不到模块错误

javascript - 当我们点击为复选框分配的标签时,Chrome 和 IE 不会按时触发更改事件

asp.net - 使用 IE 通过 https(SSL) 导出到 excel 在 asp.net 网站中不起作用

c# - textchanged 事件不会触发

c# - SignalR disconnect 在互联网断开/重新连接时未被调用

javascript - three.js Material 可以为凹凸贴图和纹理贴图设置单独的重复值吗?

javascript - Knockout 如何使用元素获取数据绑定(bind)键和可观察值?

javascript - 仅选择子 div,而不选择 "grandchild"div