Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqGrid创建单独的函数_Javascript_Jqgrid - Fatal编程技术网

Javascript jqGrid创建单独的函数

Javascript jqGrid创建单独的函数,javascript,jqgrid,Javascript,Jqgrid,如何将函数subGridRowExpanded分离到另一个函数并强制转换到subGridRowExpanded: subGrid: Hierarchy, subGridOptions : { plusicon : "ace-icon fa fa-plus center bigger-110 blue", minusicon : "ace-icon fa fa-minus center bigger-110 blue", openicon : "ace-icon fa fa-

如何将
函数subGridRowExpanded
分离到另一个函数并强制转换到
subGridRowExpanded:

subGrid: Hierarchy,

subGridOptions : {
   plusicon : "ace-icon fa fa-plus center bigger-110 blue",
   minusicon  : "ace-icon fa fa-minus center bigger-110 blue",
   openicon : "ace-icon fa fa-chevron-right center orange" }, 
subGridRowExpanded: function subGridRowExpanded(subgrid_id, row_id) 
{ 
   //somecode
}

我不确定我是否正确理解了你的问题。我想您不想使用匿名函数作为
subGridRowExpanded
的值。在这种情况下,JavaScript有两种标准方式:

1) 定义变量并为其分配匿名函数

var mySubGridRowExpanded=函数(subgridDivId,rowId){
//这里可以使用“this”访问网格
//比如说
//
//var mainGridPrefix=$(this).jqGrid(“getGridParam”,“idPrefix”),
//pureRowId=$.jgrid.stripPref(mainGridPrefix,rowId);
//创建具有唯一ID的空表和div,我们基于这些ID进行构造
//调用mySubGridRowExpanded之前由jqGrid创建的子网格div的id
变量$subgrid=$(“”+
"");
//将子网格附加到子网格div
$subgrid.appendTo(“#”+$.jgrid.jqID(subgridDivId));
//将子网格创建为jqGrid
$subgrid.jqGrid({
...
});
};
2) 定义命名的
函数
,就像您在其他计算机语言中所知道的那样。我们可以使用Javascript中的术语来描述这个案例。前面的方法(使用
var mySubGridRowExpanded=function(subgridDivId,rowId){…};
)是一个名称。您可以使用该函数的名称作为jqGrid的
subGridRowExpanded
属性的值

函数mySubGridRowExpanded(subgridDivId,rowId){
//与上面的代码相同,但缺点很小
//可能会有一些JavaScript的警告
//确认“this”可能未定义。
}
在这两种情况下,您都可以使用jqGrid选项,如

subGrid: true,
subGridOptions : {
    plusicon : "ace-icon fa fa-plus center bigger-110 blue",
    minusicon  : "ace-icon fa fa-minus center bigger-110 blue",
    openicon : "ace-icon fa fa-chevron-right center orange" }, 
subGridRowExpanded: mySubGridRowExpanded
JavaScript还有另一种函数的语义,正如我在最喜欢的语言中所知道的那样,这是因为人们可以定义类和对象的方式。所以我个人更喜欢定义函数的第一种方式(函数表达式)
mySubGridRowExpanded
function(
var mySubGridRowExpanded=function(subgridDivId,rowId){…};