这很有效。但是,再次单击“#pages-btn”不会关闭“#instruments-pages”div。有没有更好的方法来写这个?谢谢你的帮助。
这是演示我的问题的小提琴:http://jsfiddle.net/PCzfs/1/
$("#pages-btn").click(function () {
$("#instruct-pages").fadeToggle();
$(this).addClass("options-active");
});
$(document).mouseup(function (e) {
var container = $("#instruct-pages");
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.fadeOut();
$("#pages-btn").removeClass("options-active");
}
});
答案 0 :(得分:0)
var $instructPages = $("#instruct-pages");
$instructPages.is(":visible") ? $instructPages.fadeOut() : $instructPages.fadeIn();
的更新强> :
如何为“点击”切换.options-active类?有用 当您单击容器外部但如果单击该容器不起作用 实际按钮。
var $instructPages = $("#instruct-pages");
if ($instructPages.is(":visible"))
{
$instructPages.fadeOut();
$(this).removeClass("options-active");
}
else
{
$instructPages.fadeIn();
$(this).addClass("options-active");
}
答案 1 :(得分:0)
$("#pages-btn").click(function (e) {
var container = $("#instruct-pages");
container.fadeToggle();
if (!container.is(e.target) && container.has(e.target).length === 0){
if($(this).hasClass('options-active')){
$("#pages-btn").removeClass("options-active");
}else{
$("#pages-btn").addClass("options-active");
}
}
});
答案 2 :(得分:0)
您可以将它添加到您的mouseup函数中:
e.target.id!=="pages-btn"