我有一个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或任何内容,我想让它保持可见。
请帮我解决这个问题。
谢谢你和问候。
答案 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();
});
});