jqueryui对话框+Jqgrid同时出现
问题描述: 我有一个列表和一个导航栏 观点:没错, 编辑:对, 加:是的, 搜索:假, 德尔:是的 当我选择一行并单击“编辑”时,会弹出一个对话框,其中的字段可编辑 对于一个字段,我注册了一个事件处理程序:jqueryui对话框+Jqgrid同时出现,jquery,jquery-ui,jqgrid,Jquery,Jquery Ui,Jqgrid,问题描述: 我有一个列表和一个导航栏 观点:没错, 编辑:对, 加:是的, 搜索:假, 德尔:是的 当我选择一行并单击“编辑”时,会弹出一个对话框,其中的字段可编辑 对于一个字段,我注册了一个事件处理程序: $("#gps_coords").live("click",function(){ $("#google_map").dialog("open"); }); 当我点击编辑对话框中的gps坐标字段时,会打开google地图对话框 $("#google_map").d
$("#gps_coords").live("click",function(){
$("#google_map").dialog("open");
});
当我点击编辑对话框中的gps坐标字段时,会打开google地图对话框
$("#google_map").dialog(
{
width:800,
height:500,
autoOpen: false,
modal:true,
....
}
但是焦点或任何东西在“现在背景编辑”对话框上,所以光标会闪烁
以那种形式而不是新开的形式
我尝试了对话框设置:
open: function(event, ui) {
$("#google_map").focus();
}
注意:我在新打开的对话框上有一个文本字段,但无法单击或更改其值
那么,我们可以做些什么,把焦点放在新打开的对话框上呢
谢谢你我不确定我是否理解你的意思 但据我所知,你可以替换$gps_coords.liveclick,。。。使用colModel中gps_coords列定义的附加选项绑定到编辑控件: 要设置焦点,您可能应该使用$google_map.focus这样的调用,但必须将其放置在单独的线程中:
setTimeout(function(){
$("#google_map").focus();
}, 50);
我已经纠正了问题,在我的情况下,问题如下: 每个对话框都是模态的,当它弹出第一个对话框时,然后什么也做不了,我从中删除了模态选项,现在只有第二个对话框有模态:true。它工作得很好 对话1:
$("#dialog1").dialog(
{
width:800,
height:500,
autoOpen: false,
//modal:true
...
});
对话2:
$("#dialog2").dialog(
{
width:800,
height:500,
autoOpen: false,
modal:true,
...
});
试试这个
$.widget( "ui.dialog", $.ui.dialog, {
_allowInteraction: function( event ) {
return !!$( event.target ).closest( ".ui-jqdialog" ).length || this._super( event );
}
});
替换$gps_coords.liveclick,谢谢你,它成功了,但主要的问题仍然存在:我不能点击谷歌地图对话框的文本框,光标一直在jqgrid对话框的第一个文本字段闪烁@Kszili:如果你想把焦点放在某个特定的文本字段上,你应该把它用作$selector.focus中的选择器。例如,如果字段的id=mytextfield,则可以使用$mytextfield.focus而不是$google\u map.focus。如果字段没有id,您应该用另一种方式来标识它,例如$google_map input:first.focus。@Oleg:我这样做了,但我不能在该文本框中单击,正如我提到的,当我尝试这样做时,jqgrid对话框的第一个文本框元素将使光标在其中闪烁。@Kszili:我读过这个,但我不明白你的意思。jqGrid对话框的一个众所周知的问题是z索引。可能是你的问题吧?例如,您可以使用编辑选项zIndex:1010在jqGrid中增加它。如果您还有其他问题,最好发布URL或代码,以重现您的问题。@Oleg:我将在下一天向您发布一个关于问题的链接,谢谢
$.widget( "ui.dialog", $.ui.dialog, {
_allowInteraction: function( event ) {
return !!$( event.target ).closest( ".ui-jqdialog" ).length || this._super( event );
}
});