【问题标题】:ASP.NET jQuery not working from subdirectoryASP.NET jQuery 在子目录中不起作用
【发布时间】:2011-03-13 21:11:45
【问题描述】:

我编写 ASP.NET 应用程序,我想使用 jQuery DataTables。

在母版页(不在根目录中)我在后面的代码中包含脚本:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);

    ScriptManagerSM.Scripts.Add(new ScriptReference(Page.ResolveUrl("~/js/jquery.min.js")));
    ScriptManagerSM.Scripts.Add(new ScriptReference(Page.ResolveUrl("~/js/jquery-ui.min.js")));
    ScriptManagerSM.Scripts.Add(new ScriptReference(Page.ResolveUrl("~/js/DataTables/jquery.dataTables.js")));
    ScriptManagerSM.Scripts.Add(new ScriptReference(Page.ResolveUrl("~/js/setup.js")));
    Page.Header.DataBind();
}

在页面中我只有纯 html:
<table class="table display">
<thead>
<tr>
<th>Header</th>
<th>Header 2</th>
</tr>
</thead>
<tbody>
<tr class="gradeX">
<td>Cell 1</td>
<td>Cell 2</td> </tr>
</tbody>
</table>

jQuery 在我的 setup.js 中被类选择器调用:
$(function() { var oTable = $('.table').dataTable( {
"bJQueryUI": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0,'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers",
"bRetrieve": true
} );
});

在根目录下的页面上一切正常。但是在子文件夹中的页面上不会触发 jQuery。好像路径有点问题,但我看不到。

感谢您的帮助o..o

编辑:添加设置脚本
编辑 2:添加 jQuery 调用
编辑 3:添加 $(function() { 到 js上面的代码(已经存在于我的真实代码中,只是在这里丢失了

【问题讨论】:

  • 您应该使用 Firebug for Firefox 并查看是否有任何 JS 错误。您还可以查看所有内容的加载顺序,以确保 jQuery 在您的其他脚本之前加载。最后,确保通过 $(document).ready({}); 检查 DOM 是否准备就绪。

标签: jquery asp.net datatables


【解决方案1】:

在运行之前需要加载文档,因此请更改:

var oTable = $('.table').dataTable( {
"bJQueryUI": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0,'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers",
"bRetrieve": true
} );

到这里:

$(function(){

var oTable = $('.table').dataTable( {
"bJQueryUI": true,
"sScrollX": "",
"bSortClasses": false,
"aaSorting": [[0,'asc']],
"bAutoWidth": true,
"bInfo": true,
"sScrollY": "100%",
"sScrollX": "100%",
"bScrollCollapse": true,
"sPaginationType": "full_numbers",
"bRetrieve": true
} );

});

【讨论】:

  • 它正在渲染:../js/jquery.min.js ../js/jquery-ui.min.js ../js/DataTables/jquery.dataTables.js 这是正确的,但仍然无法正常工作。路径似乎是正确的,jQuery 只是没有被解雇,很奇怪..
  • 您在页面的哪个位置运行设置脚本?您确定在尝试使用脚本文件之前已加载它们吗?
  • 我的设置脚本是在我上面的帖子中说明的之后加载的(我在第一篇帖子中更新了代码):ScriptManagerSM.Scripts.Add(new ScriptReference(Page.ResolveUrl("~/js/setup.js"))); Page.Header.DataBind(); 但它是在母版页上加载的。我没有在特定页面上加载任何内容。所以 - 我不确定它们是否在页面尝试使用它们之前加载。但问题只在子目录页面上,所以我想它们是在正确的时间加载的..
  • 尝试使用您在 html 中使用脚本的代码更新您的问题。
  • 感谢您的帮助。我已经在 setup.js 中的 $(function(){}); 之间有 js 代码,但是使用了其他设置,所以这就是我在上面的代码中错过它的原因。我编辑它。
猜你喜欢
  • 2011-10-13
  • 2017-06-30
  • 1970-01-01
  • 2020-11-14
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多