问题描述:我有一个吉格丽德列表和一个导航栏
视图:真,编辑:真,添加:真,搜索:假,del:真
当我选择一行并单击“编辑”时,会弹出一个对话框,其中包含可编辑的字段。
对于一个字段,我注册了一个事件处理程序:
$("#gps_coords").live("click",function(){
$("#google_map").dialog("open");
});
当我单击编辑对话框中的gps_coords字段时,打开google_map对话框,
$("#google_map").dialog(
{
width:800,
height:500,
autoOpen: false,
modal:true,
....
}
但是焦点或任何东西都在(现在是后台编辑对话框)上,因此光标以该形式闪烁,而不是新打开的。
我尝试过(在对话框设置时):
open: function(event, ui) {
$("#google_map").focus();
}
注意:我在新打开的对话框上有一个文本字段,但不能单击或更改它的值。
那么,我们能做些什么呢,把焦点放在新打开的对话框上呢?
谢谢
发布于 2011-06-24 01:12:19
我已纠正了这一问题,就我而言,情况如下:
每个对话框都是模态的,当它弹出第一个,然后什么也做不了,我从它中删除了模态选项,现在只有第二个对话框有modal:true.And,它工作得很好。
对话1:
$("#dialog1").dialog(
{
width:800,
height:500,
autoOpen: false,
//modal:true
...
});
对话2:
$("#dialog2").dialog(
{
width:800,
height:500,
autoOpen: false,
modal:true,
...
});
发布于 2011-06-23 02:59:48
我不确定我是否理解你是对的。
但是,我的理解是,您可以用$("#gps_coords").live("click",...
列定义中的gps_coords
列定义的附加编辑选项选项替换到编辑控件的gps_coords
绑定。
editoptions: {
dataEvents: [
{
type: 'click',
fn: function() {
$("#google_map").dialog("open");
}
}
]
}
要设置焦点,您可能应该使用类似于$("#google_map").focus()
的调用,但是您必须将其放在单独的线程中:
setTimeout(function(){
$("#google_map").focus();
}, 50);
发布于 2015-04-23 09:30:18
尝尝这个
$.widget( "ui.dialog", $.ui.dialog, {
_allowInteraction: function( event ) {
return !!$( event.target ).closest( ".ui-jqdialog" ).length || this._super( event );
}
});
https://stackoverflow.com/questions/6438590
复制