Я не хочу некоторую другую систему, владеющую моими идентификаторами для моих приложений.
я получаю понятие более простых для пользователя и большего количества универсальной формы.
Однако UserID так ключ к опыту для посетителей сайта, Вы не хотите помещать все свои яйца в одну корзину (Microsoft Passport, OpenID, и т.д.). Если вещи изменяются, Вы испортили все свои учетные записи пользователей.
Я думаю, проблема в том, что div не запускает событие onfocusout
. Вам нужно будет фиксировать события щелчка на теле, а затем определять, была ли цель тогда div меню. Если это не так, значит, пользователь щелкнул в другом месте, и div необходимо скрыть.
<head>
<script>
$(document).ready(function(){
$("body").click(function(e) {
if(e.target.id !== 'menu'){
$("#menu").hide();
}
});
});
</script>
<style>#menu { display: none; }</style>
</head>
<body>
<div id="menu_button" onclick="$('#menu').show();">Menu....</div>
<div id="menu"> <!-- Menu options here --> </div>
<p>Other stuff</p>
</body>
.click будет нормально работать внутри тега div. Просто убедитесь, что вы не находитесь поверх элемента select.
$('div').click(function(e) {
var $target = $(e.target);
if (!$target.is("select")) { $(this).hide() };
});
$("body").click(function (evt) {
var target = evt.target;
if(target.id !== 'menuContainer'){
$(".menu").hide();
}
});
присвойте div идентификатор, например menuContainer. тогда вы можете проверить target.id вместо target.tagName, чтобы убедиться, что это конкретный div.