Asp.net mvc ASP.NET MVC 3 Ajax表单:更新DOM后运行JavaScript

Asp.net mvc ASP.NET MVC 3 Ajax表单:更新DOM后运行JavaScript,asp.net-mvc,jquery,unobtrusive-javascript,Asp.net Mvc,Jquery,Unobtrusive Javascript,我有一个MVC3网络项目,其中包括非常简单的搜索表单。它使用不引人注目的AJAX以表的形式返回包含结果的HTML片段,并替换现有的表。我的问题是,我想在表上使用DataTables jQuery插件来获得排序、分页等功能,但我无法找到在表上调用插件初始化代码的正确方法 到目前为止,我所拥有的是(this.Html.Script只是我为自动生成脚本标记而编写的一个扩展方法): Search.cshtml: @section ScriptSection { @this.Html.Scrip

我有一个MVC3网络项目,其中包括非常简单的搜索表单。它使用不引人注目的AJAX以表的形式返回包含结果的HTML片段,并替换现有的表。我的问题是,我想在表上使用DataTables jQuery插件来获得排序、分页等功能,但我无法找到在表上调用插件初始化代码的正确方法

到目前为止,我所拥有的是(this.Html.Script只是我为自动生成脚本标记而编写的一个扩展方法):

Search.cshtml:

@section ScriptSection 
{
    @this.Html.Script("libs/jquery.unobtrusive-ajax.min.js")
    @this.Html.Script("libs/jquery.validate.js")
    @this.Html.Script("libs/jquery.validate.unobtrusive.js")
    @this.Html.Script("libs/jquery.dataTables.js")

    <script type="text/javascript">
        function initTable() {
            $("table.datatable").dataTable();
        }
    </script>
}

@using ( this.Ajax.BeginForm("DoSearch", "Case", new AjaxOptions
{
    HttpMethod = "GET",
    InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "results",
    OnSuccess = "initTable"
}) )
{
    <button type="submit" name="SearchType" value="date">Search</button>
}

<table id="results" class="datatable">
</table>
@section脚本节
{
@this.Html.Script(“libs/jquery.unobtrusive ajax.min.js”)
@this.Html.Script(“libs/jquery.validate.js”)
@this.Html.Script(“libs/jquery.validate.unobtrusive.js”)
@this.Html.Script(“libs/jquery.dataTables.js”)
函数initTable(){
$(“table.datatable”).datatable();
}
}
@使用(this.Ajax.BeginForm)(“DoSearch”,“Case”,新的AjaxOptions
{
HttpMethod=“GET”,
InsertionMode=InsertionMode.Replace,
UpdateTargetId=“结果”,
OnSuccess=“initTable”
}) )
{
搜索
}
问题是initTable()似乎在我想要的表实际位于DOM之前被调用。结果是,结果表完全不带样式地插入到页面中,并且没有启用任何dataTable功能

我这样做对了吗,或者在DOM更新后是否有其他方法触发jQuery运行?

将代码放入:

$(document).ready(function() { // Handler for .ready() called. }); $(文档).ready(函数(){ //调用了.ready()的处理程序。 });
看看这是否对您有用-DOM应该完全加载。

哎呀,愚蠢的错误。jquerydatatables需要这些标记,我没有使用它们。对不起,吵闹了