Div slidingUp问题

时间:2013-04-14 06:42:11

标签: jquery html

我有一个div .adsearch-panel ,其中包含一些选择框和文本框。我想在div外面点击时隐藏它。为此,我正在使用;

$(document).on({
    mouseup:
    function(e){
        var container = $('.adsearch-panel');

        if(container.has(e.target).length === 0) {
            container.slideUp(200);
        }
    }
});  

上面的编码运行良好,但即使我点击该div中的任何元素,如选择框,仍然会向上滑动。如果点击div中的div或任何内容,我想让它保持可见。

请帮我解决这个问题。

谢谢你和问候。

3 个答案:

答案 0 :(得分:0)

您的on方法不正确,应该是:

$('document').on("mouseup", function (e) {
    var container = $('.adsearch-panel');

    if(container.has(e.target).length === 0) {
        container.slideUp(200);
    }
});

答案 1 :(得分:0)

我认为e.target这里指的是document。您必须放置一个stopPropagation来点击div:

$('.adsearch-panel').on('mouseup', function(e) { e.stopPropagation(); });

答案 2 :(得分:0)

LIVE DEMO

$(function(){
    $("body").on('click', function(ev) {
        var myCN = ev.target.className;
        if (myCN !== 'adsearch-panel') {
            $('.adsearch-panel').hide();
        }
    });

    $('.showAdsearch').on('click', function( e ) {
        e.stopPropagation();
        $('.adsearch-panel').show();
    });
});