我有一个函数,当单击一个链接时,它将显示与JqGrid的表单对话框。
我的代码是这样的:
HTML:
<div id="mainDialog">
<a href='#' class='showList'>Show list [Ctrl+L]</a>
....
</div>
Jquery的:
$('#mainDialog .showList').click(function(){
showDialog({
formid:"The_List",
path:"folder/subfolder",
height:820,
open:function(){}
});
});
表单对话框The_List
来自另一个文件。在该文件中,我有这样的事情:
$("#dlgThe_List").bind('dialogopen',function(e){
$("#listGrid").jqGrid({
//set the grid properties
....
});
});
使用它,在填充JqGrid表的对话框中,它可以正常工作。
但是,当我使用下面的代码触发上面的click
函数时,会显示对话框,但JqGrid
表甚至不显示:
$('#mainDialog').on('keydown', function(e){
if (e.keyCode == 76 && e.ctrlKey){
e.preventDefault();
$('#mainDialog .showList').trigger('click');
}
});
我首先想到的是showDialog
脚本在创建jqGrid
之前完成。
但从逻辑上讲,我认为没有区别,因为使用快捷键时,点击功能仍然会触发。
对此有何澄清?
修改 我创建JSFiddle demo与我的问题类似,但遗憾的是JqGrid不受支持。
答案 0 :(得分:1)
我认为你也应该触发dialogopen
事件:
$('#mainDialog').on('keydown', function(e){
if (e.keyCode == 76 && e.ctrlKey){
e.preventDefault();
$('#mainDialog .showList').trigger('click');
$("#dlgThe_List").trigger('dialogopen'); //<-----trigger it too
}
});
如你所说,有一个拼写错误,你必须将你的id改为:
$('#mainDialog .showList')
属于这个:
<a href='#' class='showList'>Show list [Ctrl+L]</a>
我已经更新了你的小提琴以及它在这里的工作:
它带有一些本地数据。