Javascript Esc按钮与.trigger()配合使用;仅当我首先单击任何元素时
我创建了一个简单的函数,它显示iFrame中的内容,iFrame位于另一个元素(Javascript Esc按钮与.trigger()配合使用;仅当我首先单击任何元素时,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我创建了一个简单的函数,它显示iFrame中的内容,iFrame位于另一个元素(#icontent)的内部。容易的。现在,我想使用在iFrame内部创建的按钮或按ESC按钮来关闭iFrame和周围的元素。第一种方法也很简单,但第二种方法很奇怪。 这是我的密码: jQuery('.slider-wrapper').on('click','.hide',function() { parent.top.jQuery('#icontent').fadeOut(200); setTimeo
#icontent
)的内部。容易的。现在,我想使用在iFrame内部创建的按钮或按ESC按钮来关闭iFrame和周围的元素。第一种方法也很简单,但第二种方法很奇怪。
这是我的密码:
jQuery('.slider-wrapper').on('click','.hide',function() {
parent.top.jQuery('#icontent').fadeOut(200);
setTimeout(function(){
parent.top.jQuery('#mainFrame').attr('src','about:blank');
}, 250);
});
jQuery(document).keyup(function(e) {
if (e.keyCode == 27) { jQuery('.hide').trigger('click');
}
});
单击.hide
按钮时,它将关闭我的iFrame所在的div。但当我按下ESC键(这应该是模拟点击按钮)时,它会工作,但只有当我先点击任何元素时(除了提到的按钮),如果我不先点击任何地方,它什么也不做。有什么解释吗
谢谢大家,丹。如果文档没有焦点,那么关键的听众将无法收听。。。我把代码改成:
jQuery(document).keyup(函数(e){if(e.keyCode==27){jQuery('.hide').trigger('.click');jQuery('#mainFrame').contents().find('.hide').trigger('click');})
可以工作,但这不是一种解决方法,而不是一段漂亮干净的代码吗?将代码更改为什么?抱歉,很快按enter键..您可以从iframe绑定它,并在关闭它时解除绑定。