解决方案如下
我已经阅读了这里有关这个概念的大多数问题,但我似乎无法让它与 if 语句一起使用。有什么帮助吗?
JSFiddle http://jsfiddle.net/2udYp/
$("button").click(function () {
$("div").fadeToggle("fast");
});
if ($("div").is(":visible")) {
$(document).click(function () {
$("div").fadeToggle("fast");
});
$("div").click(function (e) {
e.stopPropagation();
});
}
因此,按钮应该切换 div。当 div 切换时(即:visible
)只有单击页面上的任意位置才能将 div 切换回来(不可见),而单击 div 本身则不能。
Solution
我结合了恶魔的回答 https://stackoverflow.com/questions/14622606/click-anywhere-but-on-the-element-to-hide-it-w-if-statement/14622853#answer-14622841 and 凯文·鲍尔索克斯的回答 https://stackoverflow.com/questions/14622606/click-anywhere-but-on-the-element-to-hide-it-w-if-statement/14622853#answer-14623359 into this one http://jsfiddle.net/2udYp/13/.
$("button").click(function (e) {
$("div").fadeToggle("fast");
e.stopImmediatePropagation();
});
$(document).click(function (e) {
if($("div").is(":visible") && !$("div").is(e.target)) {
$("div").fadeOut("fast");
}
});
JavaScript
$("button").click(function (e) {
$("div").fadeToggle("fast");
});
$(document).mouseup(function(event){
var target = $("#no-mod");
if(!target.is(event.target) && !$("button").is(event.target) && target.is(":visible")){
$("div").fadeToggle("fast");
}else{
return false;
}
});
HTML
<button>Click me</button>
<div id="no-mod"></div>
例子:http://jsfiddle.net/2udYp/9/ http://jsfiddle.net/2udYp/9/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)