代码之家  ›  专栏  ›  技术社区  ›  CoffeeCode

如何在ajax调用后执行命令?

  •  0
  • CoffeeCode  · 技术社区  · 16 年前

    我写了这个剧本:

    $.getJSON('<%=Url.Action("JsonSave","Controler")%>', {
        id: newRow.Id,
        personId: newRow.PesronId},
        function(data) {
            $('#grid').trigger('reloadGrid'); //{0}
            $('#grid').editRow(rowCount); //{1}
        })
    })
    

    {1} 将在之后执行 {0} ?

    3 回复  |  直到 5 年前
        1
  •  3
  •   Doug Neiner    16 年前

    最新答案 我做了一点调查,看来你在用 jQuery Grid plugin . 它有一个名为 gridComplete 这应该能满足你的需要。结合我的原始答案使用 one 你会准备好的:

    由于事件是按顺序调用的,因此可以将方法添加到事件队列中,如下所示:

    $.getJSON('<%=Url.Action("JsonSave","Controler")%>',
            { id: newRow.Id, personId: newRow.PesronId},
             function(data) {
                $('#grid').one('gridComplete', function(){ $('#grid').editRow(rowCount); });
                $('#grid').trigger('reloadGrid');
             })
    

    one 而不是 bind 使事件回调仅使用一次。

        2
  •  1
  •   Vinodh Ramasubramanian    16 年前

    Doug的回答是正确的,但要使用的事件是 loadComplete

    jQGrid documentation for events

        3
  •  0
  •   Alex    5 年前

    trigger() editRow() 异步调用?如果是这样,你这样做可能是运气不佳,因为你不知道他们什么时候会被叫来。

    编辑行() 后援 完成后,调用 EditRow() 触发器() 功能本身。

    推荐文章