Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqueryui对话框+Jqgrid同时出现_Jquery_Jquery Ui_Jqgrid - Fatal编程技术网

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 );
    }
});