JavaScript lose focus
I have a div that is set to display:inline using the onclick() JS event handler. How do I make the div go back to display:none when I click any where else on the page other than the now visible div?
I've Googled about 开发者_运维百科blur and setting the focus to another element but I don't know how to actually do it.
If you want to use jQuery, it is easy:
$('*').click(function(){
if ($(this).attr('id') !== 'div_id'){
$('#div_id').css('display', 'none');
}
});
The above becomes rather slow with all * selector, So I would recommend you to use jQuery Outside Events plugin.
Example:
$('#div_id').bind('clickoutside', function(){
$(this).css('display', 'none');
});
you can create an absolute div covering the whole window area by giving it 100% width and height and then give it an onclick to display:none your div. your div should have a z-index greater than the absolute div
the raw js sample can be find here.
document.onclick = function(e) {
if (!e) var e = window.event;
if (e.target.id == 'the_id_of_your_div') {
// Do something
} else {
// Do something else
}
}
加载中,请稍侯......
精彩评论