我有以下的jQuery:jQuery的切換上的mouseup
$('#account-menu').hide();
$("#account-link").click(function(e) {
e.preventDefault();
$("#account-menu").toggle();
$("#account-link").toggleClass("selected");
});
我想要做的是檢查如果用戶點擊屏幕上的任何地方而賬戶菜單顯示而不是賬戶菜單本身內,如果是的話就隱藏菜單。誰能幫忙?
感謝
編輯: 我了個去,在這樣做我自己,像這樣:
$('#account-menu').hide();
$("#account-link").click(function(e) {
e.preventDefault();
$("#account-menu").toggle('fast');
$("#account-link").toggleClass("selected");
});
$(document).mouseup(function(e) {
var $targ = $(e.target);
// if we are the link or the box, exit early
if ($targ.is('#account-link') || $targ.is('#account-menu')) return;
// if we have a parent who is either, also exit early
if ($targ.closest('#account-link, #account-menu').length) return;
// hide the box, unselect the link
$("#account-link").removeClass("selected");
$("#account-menu").hide('fast');
});
但想看看是否有一個更好的和做的要小得多(代碼明智)方式它。
請看我下面的`UPDATE#2`。在JSFiddle上工作。 – Dutchie432 2011-02-14 14:09:54