jquery:div hide / show on focus issue
感谢inti的代码,我能够找到答案!
jQuery的:
$(document).ready(function(){ $("body").click(function(e) { //checks to see if the tag you clicked has the #login //div as a parent. if($(e.target).closest("#login").size() == 0) { //makes exception for the #login's tag (id of a_login) if((e.target.id) == 'a_login') { $("#login").show(); } else { $("#login").hide(); } //if target has #login as parent, keep it visible } else { $("#login").show(); } }); });
工作jsfiddle示例: http : //jsfiddle.net/SuperPhil/3CmE7/
谢谢!
我正在尝试使用类似于http://dropbox.com登录的登录屏幕。 用户单击登录链接并显示div(CSS)并在焦点消失时消失。
这是我的jQuery
$('#login').bind('click', function() { $('#login').addClass("clicked").focusout(function() { $('#login').removeClass('clicked'); }); });
这不起作用。 谁能帮我吗?
编辑:
$('#login').click(function() { $('#login div').addClass("clicked").blur(function() { $('#login div').removeClass('clicked'); }); });
您正在寻找的事件是.blur()
而不是.focusout()
。
编辑:单击#mydiv以隐藏它:
$("body").click(function(e) { if ($(e.target).closest("#mydiv").size() == 0) { $("#mydiv").hide(); } });
如果您点击的内容没有将其作为其中一个父母,则会隐藏#mydiv。
我觉得你看起来像这样……
HTML:
Click Me
jQuery的:
$(document).ready(function(){ $("#login").hide(); $('a').bind('click', function() { $("#login").toggle().focus(); }); $("input").focusout(function(){ $("#login").hide(); }); });