Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery blur()未侦听$(此)_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery blur()未侦听$(此)

Javascript jQuery blur()未侦听$(此),javascript,jquery,html,Javascript,Jquery,Html,然后是HTML DOM: <div class="opt"> Options <div class="panel"> <h3>i am in panel!!</h3> </div> </div> 这是一个演示 但是blur方法没有执行,从技术上讲,我做错了什么?如果为div定义de-tabindex属性,这会起作用。。。 尝试: HTML 如果为div定义de-tabindex属性,

然后是HTML DOM:

<div class="opt">
    Options
    <div class="panel">
        <h3>i am in panel!!</h3>
    </div>
</div>
这是一个演示


但是blur方法没有执行,从技术上讲,我做错了什么?

如果为div定义de-tabindex属性,这会起作用。。。 尝试:

HTML


如果为div定义de-tabindex属性,则此操作有效。。。 尝试:

HTML


您可以将淡出操作绑定到主体的单击处理程序,然后添加:

event.stopPropagation();
要创建opt类,请单击处理程序以实现此目的


您可以将淡出操作绑定到主体的单击处理程序,然后添加:

event.stopPropagation();
要创建opt类,请单击处理程序以实现此目的


您可以尝试在主体上单击事件,而不是模糊。看看


您可以尝试在主体上单击事件,而不是模糊。看看


看看我用tab索引属性尝试了你的代码,它可以工作。看这个:[[1]:我注意到它与mouseleave而不是blur一起工作,但是它不会侦听ClicksAllso,如果通过jquery触发事件,它的响应会很好。它在Internet explorer中也很好,因此可能是与如何解释此事件有关的浏览器问题。tab索引技巧似乎很有效。我不确定在DIV上使用blur是否有意义。它用于输入元素,可以接收并失去焦点。请看。我用tab index属性尝试了您的代码,效果很好。请看:[[1]:我注意到它与mouseleave而不是blur一起工作,但是它不会侦听ClicksAllso,如果通过jquery触发事件,它的响应会很好。它在Internet explorer中也很好,因此可能是与如何解释此事件有关的浏览器问题。tab索引技巧似乎很有效。我不确定在DIV上使用blur是否有意义。它用于输入元素,可以接收并失去焦点。我不理解if{..}单击主体时要做什么..请描述一下?如果目标是.opt,我不想关闭面板,所以我返回false以退出事件。单击事件在主体上,但如果内部元素在.opt内,我返回false以退出方法以保持面板打开。好的,我认为这比在.opt上停止播放更好…你认为呢?是的。使用stopPropagation,你将无法检测到冒泡时可能发生的其他事件。例如,父div上的事件将不起作用。我不明白如果{..}单击主体时要做什么..请描述一下?如果目标是.opt,我不想关闭面板,所以我返回false以退出事件。单击事件在主体上,但如果内部元素在.opt内,我返回false以退出方法以保持面板打开。好的,我认为这比在.opt上停止播放更好…您认为如何?是的。使用StopRoPagation,您将无法检测冒泡时可能发生的其他事件。例如,父div上的事件将不起作用。
$('.opt').click(function(){

    $(this).find('.panel').fadeIn();
    $(this).blur(function(){
        $(this).find('.panel').fadeOut();
        alert('i am from blur');
    });
});
event.stopPropagation();
$('.opt').click(function(){
    var $this = $(this);
    $this.find('.panel').fadeIn();
});


$('body').click(function (e){ 
    if( $(e.target).closest(".opt").length > 0 == false) {
        $('.panel').fadeOut();
        alert('fake blur');
    }
});