Hello, for those wondering, if you want to know whenever you click
outside a div and byt outside i mean everywhere but the div like you
want to display an error message :
html
head
titletest error click outside/title
style type=text/css
p.error {
position:absolute;
top:40%;
left:30%;
width:40%;
/style
/head
body
blaeblalblpdsqdsq/pspanfsqf/span
div id=onefsqfqsf/div
p class=errorspanERROR :/span emClick outside this paragraph
to close it, you can even click on me !/em/p
div clas=fslfqs/div
!-- THIS IS THE PART THAT YOU WANT TO LOOK AT ;) --
script type=text/javascript
$(document).bind('click', function(e) {
var $clicked=$(e.target); // get the element clicked
if($clicked.is('.error') || $clicked.parents().is('.error')) {
// if
the element clicked is the one we're looking for or if the element has
a parent that we're looking for then we clicked the right place !
console.log('BULLSEYE !'); // here you should do
anything
} else { // we're outside the error paragraph, no matter where
but
we're outside !
console.log('you clicked outside the error paragraph,
congrats !'); //here you should close the message :)
}
});
/script
/body
/html
This works in FF, IE7 (expect for the console.log thing ...), didnt
tested it in ie6 etc... But think it works.
If you just want to close it then :
script type=text/javascript
$(document).bind('click', function(e) {
var $clicked=$(e.target); // get the element clicked
if( ! ( $clicked.is('.error') ||
$clicked.parents().is('.error') ) )
{
$('.error').hide();
}
});
/script
Let me know if that work for you
On 2 mai, 20:35, Aleksandr [EMAIL PROTECTED] wrote:
Everything is working now.
Thanks to all.
Last version of code is:
$(document).ready(function(){
$(#link).click(function(){
if ($(#divLoginBox1).is(':hidden'))
$(#divLoginBox1).show();
else{
$(#divLoginBox1).hide();
}
return false;
});
$('#divLoginBox1').click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$('#divLoginBox1').hide();
});
});
On May 2, 7:29 pm, Josh Nathanson [EMAIL PROTECTED] wrote:
Looks like you are missing a semicolon which will choke IE:
$(#link).click(function(){
if ($(#divLoginBox1).is(':hidden'))
$(#divLoginBox1).show();
else{
$(#divLoginBox1).hide();
}
return false;
}) -- ADD SEMICOLON HERE
-- Josh
- Original Message -
From: Aleksandr [EMAIL PROTECTED]
To: jQuery (English) jquery-en@googlegroups.com
Sent: Friday, May 02, 2008 11:00 AM
Subject: [jQuery] Re: Hide/Close div when clicked outside of it.
I am now have this jQuery code and it is working in FireFox, Safari
and Opera but not in IE 6, 7:
$(document).ready(function(){
$(#link).click(function(){
if ($(#divLoginBox1).is(':hidden'))
$(#divLoginBox1).show();
else{
$(#divLoginBox1).hide();
}
return false;
})
$('#divLoginBox1').click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$('#divLoginBox1').hide();
});
});
On May 2, 6:00 pm, sawmac [EMAIL PROTECTED] wrote:
try this
$('#divLoginBox1').click(function(e) {
e.stopPropagation();});
$(document).click(function() {
$('#divLoginBox1').hide();
});
--dave