我发现当按下 ESC 按钮时我从 keyDown 事件处理程序调用它时 location.reload() 调用没有执行任何操作。有人知道如何重新加载页面的一些解决方法吗?我也找到了 http://bugs.jqueryui.com/ticket/4922看起来这个问题已经解决了。 这是一个代码示例。 订阅事件:
jQuery(document).keydown(function (event) {
if (event.keyCode == 27) {
closeVideoPopup();
}
});
和 closeVideoPopup() 方法:
function closeVideoPopup() {
jQuery('#fade, .window_container').fadeOut(function(){
jQuery('#fade, a.close').remove();
});
jQuery('ul.tabs').css('z-index', '99');
jQuery('div.framing_slider').css('z-index', '9999');
location.reload();
return false;
请注意,此代码在除 FF 以外的所有浏览器中都能完美运行。
最佳答案
那是因为 Esc 键会在您在 Firefox 中启动后立即停止刷新。
使用 setTimeout
这样 location.reload()
将在事件完成冒泡后执行。
jQuery(document).keydown(function (event) {
if (event.keyCode == 27) {
setTimeout(closeVideoPopup, 0);
}
});
或者更好,只需调用 event.preventDefault()
所以 Esc 键不会取消页面重新加载:
jQuery(document).keydown(function (event) {
if (event.keyCode == 27) {
event.preventDefault();
closeVideoPopup();
}
});
关于javascript - 当我在按下 ESC 键时在 keyDown 事件处理程序中使用它时,location.reload 不会重新加载页面。仅在 FF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306492/