gpt4 book ai didi

javascript - 是否可以在 javascript 函数中包含一个事件?

转载 作者:行者123 更新时间:2023-11-30 18:46:10 26 4
gpt4 key购买 nike

我只是想知道从主 javascript 获取 jqgrid 事件并使用函数形式的另一个 javascript 将其分开是否可行?我想做的就是这样。我有一个代码:

     ...//some code here
serializeGridData: function(postData) {
var jsonParams = {
'SessionID': $('#eSessionID3').val(),
'dataType': 'data',
'recordLimit': postData.rows,
'recordOffset': postData.rows * (postData.page - 1),
'rowDataAsObjects': false,
'queryRowCount': true,
'sort_fields': postData.sidx
};

if (postData.sord == 'desc')
{
...//some code here
}
else
{
...//some code here
}

return 'json=' + jsonParams;
},

loadError: function(xhr, msg, e) {
showMessage('errmsg');
},
...//some code here

我想获取此代码并将其写入另一个 javascript 文件并将其作为一个函数,以便我的其他文件可以使用这个..这可能吗?

我在我计划放置所有函数的其他 javascrtip 文件中创建了类似的东西。这是代码 (functions.js):

function serialLoad(){
serializeGridData: function(postData) {
var jsonParams = {
'SessionID': $('#eSessionID3').val(),
'dataType': 'data',
'recordLimit': postData.rows,
'recordOffset': postData.rows * (postData.page - 1),
'rowDataAsObjects': false,
'queryRowCount': true,
'sort_fields': postData.sidx
};

if (postData.sord == 'desc')
{
...//some code here
}
else
{
...//some code here
}
return 'json=' + jsonParams;
},

loadError: function(xhr, msg, e) {
showMessage('errmsg');
}
}

这不起作用并显示消息语法错误。我不知道如何纠正这个。有没有人可以帮助我。?

最佳答案

首先回答你的直接问题。如果您在 functions.js 文件中定义一些全局变量,例如 myGlobal:

myGlobal = {};
myGlobal = serializeGridData: function(postData) {
// ... here is the implementation
};

您可以在另一个必须包含在 functions.js 文件之后的 JavaScript 文件中使用它:

serializeGridData: myGlobal.serializeGridData

(只需在 jqGrid 定义中使用此类参数)。

如果您想在大多数 jqGrids 中使用 serializeGridData 参数,您可以在 functions.js 中覆盖 serializeGridData 的默认值 改为文件:

jQuery.extend(jQuery.jgrid.defaults, {
datatype: 'json',
serializeGridData: function(postData) {
// ... here is the implementation
},
loadError: function(xhr, msg, e) {
showMessage('errmsg');
}
});

在示例中,我将额外的默认 datatype: 'xml' jqGrid 参数覆盖为 datatype: 'json'。它表明您可以设置任何 jqGrid 参数的默认值。

在我看来你真正需要的是使用 prmNames jqGrid 参数重命名标准 jqGrid 参数的一些默认名称。例如用

prmNames: {
rows:"recordLimit",
sort: "sort_fields",
search:null,
nd:null
}

您将标准 rows 参数重命名为 recordLimit,将 sidx 重命名为 sort_fields 并删除 _search nd 要发送的参数。

此外,您可以使用 postData 将一些属性定义为函数(详见 here)。例如:

postData: {
SessionID: function() {
return $('#eSessionID3').val();
},
rowDataAsObjects: false,
queryRowCount: true,
dataType: 'data',
recordOffset: function() {
var pd = jQuery("#list2")[0].p.postData;
return pd.recordLimit * (pd.page - 1);
},
json: function() {
var pd = jQuery("#list2")[0].p.postData;
return {
SessionID: $('#eSessionID3').val(),
dataType: 'data',
recordOffset: pd.recordLimit * (pd.page - 1),
rowDataAsObjects: false,
queryRowCount: true,
sort_fields: pd.sort_fields
};
}
}

我在这里使用了您当前使用的 json 参数,并直接在参数列表中添加了 SessionIDqueryRowCount 等参数这将被发送。当然,只发送一种方式(json 或其他方式)来发送您需要的附加信息就足够了。

关于javascript - 是否可以在 javascript 函数中包含一个事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5374977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com