jquery slidetoggle如何设置鼠标是否单击其他,关闭slidetoggle

时间:2014-12-27 18:01:15

标签: javascript jquery slidetoggle

我使用jquery slidetoggle来显示DIV

但是我需要设置如果鼠标点击不在div.list中,请关闭此slideToggle

$( "#list_button" ).click(function() {
        $( ".list" ).slideToggle( "fast" );
 });

我只发现了mouseout ....我无法找到如何点击任何“点击页面上的任何地方”来关闭此切换

进行测试:http://jsfiddle.net/sdgwbyv8/

2 个答案:

答案 0 :(得分:0)

$( "body" ).click(function( event ) {

    if(
        event.target.className!='list' && event.target.parentNode.parentNode.className!="list"

    ) {
         $( ".list" ).slideToggle('fast');
    }
});

演示:http://jsfiddle.net/sdgwbyv8/9/一种可能的解决方案,我想有更好的解决方案......

答案 1 :(得分:0)

您可以event.stopPropagation()

执行此操作
$("#list_button").click(function (event) {
    if ($(".list").is(":hidden")) {
        event.stopPropagation();
        $(".list").slideToggle("fast");
    } 
});

$('body').click(function () {
    $(".list").hide();
});
$(".list").click(function (event) {
    event.stopPropagation();
});

<强> Working Fiddle