gpt4 book ai didi

javascript - 通过鼠标单击 VS 快捷键触发事件

转载 作者:行者123 更新时间:2023-11-28 01:47:11 24 4
gpt4 key购买 nike

我有一个函数可以在单击链接时显示 JqGrid 的表单对话框。

我的代码是这样的:

HTML:

<div id="mainDialog">
<a href='#' class='showList'>Show list [Ctrl+L]</a>
....
</div>

J查询:

$('#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。

最佳答案

我认为你也应该触发 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>

我已经更新了你的 fiddle ,它在这里工作得很好:

Check the Demo

它带有一些本地数据。

关于javascript - 通过鼠标单击 VS 快捷键触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21982017/

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