javascript - 使用 jqGrid 和 jQuery 时事件不会在函数内触发

标签 javascript jquery jqgrid

我是 javascript、jQuery 和 jqGrid 的新手,所以这可能是一个非常基本的问题。

为什么事件在这里正确触发,触发警报:

        $("#list").jqGrid({loadComplete: alert('load complete')
            });

但当警报在函数内部时不在此处?

        $("#list").jqGrid({loadComplete:
                               function() {
                                    alert('load complete');
                               }
            });

我猜有些非常基本的东西我(还)不明白。

谢谢。 --杰夫

最佳答案

发布链接后http://ccclients.com/TEST/TEST.php我明白你犯了什么错误。您不应在两个 调用中分隔 jqGrid 定义:

jQuery("#list").jqGrid({
    datatype: 'xml',
    mtype: 'GET',
    loadonce: true,
    // other parameters
    caption: 'My first grid', 
    xmlReader: { 
        root: "export", 
        row: "row",
        repeatitems: false
    }
 });

$("#list").jqGrid({loadComplete: 
            function() {
                alert('load complete')
            }
});

但是将 loadComplete 定义为 $("#list").jqGrid({ ... }); 的 one 调用的一部分; 喜欢以下内容:

jQuery("#list").jqGrid({
    datatype: 'xml',
    mtype: 'GET',
    loadonce: true,
    // other parameters
    caption: 'My first grid', 
    xmlReader: { 
        root: "export", 
        row: "row",
        repeatitems: false
    },
    loadComplete: function(data) {
        alert('load complete');
    }
 });

如果您稍后必须设置事件处理程序,您应该使用 setGridParam 方法(参见 Add an event handler to jqGrid after instantiation)

此外,我完全不同意 Groxx 的回答。将为所有数据类型(包括“xml”、“json”、“local”等)调用函数 loadComplete。如何在 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events#execution_order 下的文档中查看函数 loadComplete 是在加载(或刷新)数据后在网格中进行一些修改的完美位置。我永久使用此功能。如果您需要加载非常奇特的数据(既不是 xml 也不是 json 等),则使用数据类型函数是最后一种方法。对于 xml 和 json 数据的加载,jqGrid 中有很多自定义功能(参见 Setting the content-type of requests performed by jQuery jqGrid 例如)。因此,您可以自定义 jQurey.ajax 调用,并根据需要转换用作 jQurey.ajax 输入和输出的数据。

关于javascript - 使用 jqGrid 和 jQuery 时事件不会在函数内触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3515715/

相关文章:

javascript - Nodejs Promise 设计中的内存泄漏?

jquery - 当 ajax 请求被中止时,我如何关闭 mysql 连接?

javascript - 动态禁用 jqGrid 行

php - 使用 CodeIgniter 在 jqgrid 中添加、编辑和删除反射(reflect)在数据库中的数据

javascript - 表单控制故障解决方法

javascript - ._where 将数组作为谓词值传递

javascript - 在模态 html 中格式化数据

jquery - 如何在jqGrid上编辑选定的单元格

javascript - 从手机上的 OneDrive 中选择一个文件 - 移动网站

javascript - Jquery:传递属性,销毁属性