2010-05-30 67 views
1

我的代码用于工作,但我最近更新了jQuery UI 1.8和jQuery 1.4,因为一些事情没有工作。一旦我做到了,那些事情就开始奏效,但是,现在我注意到这一个对话框将自己定位在顶端,而不是中间位置。jQuery UI对话框在打开时不服从位置选项

让我先解释一下代码。代码每x分钟查询一次Ajax请求以查看上次会话被击中的时间。如果它们上次碰到会话10分钟后,会出现一个jQuery UI对话框div,并提示它们的会话即将过期,并且有一个按钮可让您通过单独的内联Ajax重新打开会话GET请求,无需重新加载整个页面。

这是实际的麻烦。 15分钟或更长时间后,它应该关闭警告对话框(它会检查它是否已经打开,在这种情况下它可能是'是'),然后创建一个带有内嵌登录表单的新对话框,让您重新验证您的无需重新加载页面即可登录(并丢失任何未保存的中途填写的表单)。

这里是应该关闭警告,创建重新登录DIV功能:

function renderReLogin() { 
    if ($("#logOutWarning").dialog("isOpen")) { 
     $("#logOutWarning").dialog("close"); // Close warning dialog as session has already expired 
    } 

    if ($("#logOutReLogin").dialog("isOpen") != true) 
    { 
     $('#noticeContainers').html('<div id="logOutReLogin" title="You\'ve been logged out!"><div id="logOutReLoginText"></div></div>'); 
    } 

    $('#logOutReLoginText').html("This session has expired. In order to protect the integrity of you and your clients, we must limit sessions. To resume this session (and not lose any unsaved work) you must revalidate your credentials by logging in below.<br />" + 
     '<br /><div style="color:red;text-align:center;" id="loginFeedback"></div>'+ 
     '<form id="reloginForm">'+ 
     '<table width="40%" align="center"><tr><td>E-mail:</td>'+ 
     '<td><input id="username" type="edit"></td></tr>'+ 
     '<tr><td>Password</td>'+ 
     '<td><input id="password" type="password"></td></tr>'+ 
     '</table></form>' 
    ); 

    $('#logOutReLogin').dialog(
     { 
      width: '50%', 
      modal: true, 
      show: 'scale', 
      hide: 'scale', 
      draggable: false, 
      resizable: false, 
      position: 'center', 
      buttons: { 
       "Re-Login": function() { retryLogin(); }, 
      } 
     } 
    ); 
} 

现在像我上面所说的,警告打开罚款,然后关闭罚款。但重新登录对话框捕捉到视图端口的顶部中心,而不是中间中心。当我手动调用$(“#logOutReLogin”)。dialog(“option”,“position”,“center”);通过Firefox中的Firebug,在Firefox已经打开后,它会转到应该在的位置。它似乎是上面函数中的开放行为。

回答

0

经过试验和错误,我相信我找到了它不工作的原因。似乎警告对话框上的隐藏动画与重新登录对话框的显示动画冲突。

我转移了很多东西,并在注释掉动画设置后注意到了最令人满意的结果,所以我假设是这样 - 但它可能是我在实验时更改的组合。

我不确定这是否是一个已知的否定,让事情按照我做/做的方式进行。但我想有这样的动画是不是真的需要,因为他们弹出的可能原因是用户不看标签。