我正在为每个包含表单元素的应用程序使用选项卡。当用户导航到其他选项卡并修改字段时,正在设置隐藏变量“IsDirty”。
当我在选项卡上实现beforeActivate事件时...我检查是否有任何值已更改并将隐藏变量设置为“IsDirty”,我在beforeActivate中执行此操作,因为您可以访问“旧”和“新建”选项卡,例如:
beforeActivate: function (event, ui) {
...
$panel_Old.find("input#hdIsDirty").val('0');
$tabs.tabs('select', $tab_New.index());
$panel_Old.find("input#hdIsDirty").val('1');
...
},
然后我实现了select事件,例如:
select: function (event, ui) {
// other code here
}
我的问题是......在beforeActivate事件中...当我打电话
时 $tabs.tabs('select', $tab_New.index());
我可以传递一些参数,例如......上一个标签... select事件会作为自定义参数吗?
答案 0 :(得分:1)
答案是否定的,除非您修改小部件本身,否则不能将自定义参数传递给事件。
如果您愿意,可以执行的操作是为您事件中的窗口小部件设置属性,然后稍后检索它们:
beforeActivate: function (event, ui) {
...
$(this).attr('data-oldtab', $tab_Old.index()); // or whatever information you want
$panel_Old.find("input#hdIsDirty").val('0');
$tabs.tabs('select', $tab_New.index());
$panel_Old.find("input#hdIsDirty").val('1');
...
},
然后,绑定select
时:
select: function (event, ui) {
oldtabindex = $(this).data('oldtab');
// other code here
}
有关data()
的详情,请参阅here。