我有一个通过 gwt 代码生成的弹出窗口。用户单击(图像 x btn)后,焦点应设置为文本框。但是我在这里所拥有的并没有按预期工作。它的作用是它专注于文本框但不关闭弹出窗口。我需要它先关闭弹出窗口,然后再聚焦文本框。我尝试一一删除 div 的类,但似乎它不会删除“模态”功能,或者页面不再响应任何鼠标或键盘单击。下面的代码只有在 $('#globalSearchTextBox').focus(); 之前有一个 alert("test") 时才能按预期工作。但是每当我删除它时,它都会再次失败。似乎把焦点放在了“x”上 图像丢失并立即转到 globalSearchTextBox 甚至在单击弹出窗口之前,这就是它不关闭它并因此仍处于模态模式的原因。我还尝试在图像单击的 xit 处理程序上的 .java 代码中执行此操作,但仍然无法正常工作。
我没有关于如何正确执行此操作的想法,也不是 jquery 粉丝。:(请帮忙。谢谢。
这是我的代码:
$('#imgExitId').live('keydown', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
//alert("tab press")
$('#imgExitId').focus();
}
if (keyCode == 13) {
e.preventDefault();
//if alert("test") is added, hen it works
$('#globalSearchTextBox').focus();
}
});
我尝试了数百种解决方案,例如模糊、鼠标离开,同时设置超时(我尝试延迟焦点,因为我认为它很快)。我什至尝试删除弹出面板的 .css。
这是弹出窗口的 html(通过 gwt 代码生成):
<div class="gwt-PopupPanelGlass" style="position: absolute; left: 0px; top: 0px; display: block; width: 1758px; height: 1001px;"></div>
<div style="left: 1156px; top: 39px; position: absolute; overflow: visible;" class="gwt-DecoratedPopupPanel gwt-DecoratedPopupPanel-pnlUserFeedback" id="pnlUserFeedBackId"><div class=""><table cellspacing="0" cellpadding="0" class=""><tbody><tr class="dialogTop"><td class="dialogTopLeft"><div class="dialogTopLeftInner"></div></td><td class="dialogTopCenter"><div class="dialogTopCenterInner"><div class="Caption"></div></div></td><td class="dialogTopRight"><div class="dialogTopRightInner"></div></td></tr><tr class="dialogMiddle"><td class="dialogMiddleLeft"><div class="dialogMiddleLeftInner"></div></td><td class="dialogMiddleCenter"><div class="dialogMiddleCenterInner dialogContent"><div id="pnlUserFeedbackPopupArrowId" class="pnlMainUserFeedback pnlArrow"><img src="images/window-arrow-for-error.gif" class="gwt-Image" title="Error" alt="Error" id="imgUserFeedbackPopupArrowId"><div id="pnlHeaderUserFeedbackPopupId" class="pnlHeaderUserFeedbackPopup"><button type="button" tabindex="0" class="imgExit" title="Close Window" alt="Close Window" id="imgExitId"></button><div class="dataHyperLink lblCloseInUserFeedback" id="lblCloseInUserFeedbackId" style="text-decoration: initial;">close</div><div class="gwt-Label lblHeaderUserFeedbackPopup" id="lblHeaderUserFeedbackPopupId">Error</div><div id="pnlBodyUserFeedbackPopupId" class="pnlBodyUserFeedbackPopup"><div id="pnlMessagePopupId" class="pnlMessagePopup"><img class="gwt-Image imgWarning" title="Warning" alt="Warning" src="images/warning.gif" id="imgWarningId"><div class="gwt-Label lblMessagePopup" id="lblMessagePopupId">Please provide a search term</div></div></div></div></div></div></td><td class="dialogMiddleRight"><div class="dialogMiddleRightInner"></div></td></tr><tr class="dialogBottom"><td class="dialogBottomLeft"><div class="dialogBottomLeftInner"></div></td><td class="dialogBottomCenter"><div class="dialogBottomCenterInner"></div></td><td class="dialogBottomRight"><div class="dialogBottomRightInner"></div></td></tr></tbody></table></div></div>