I have a div
and want to hide it when I click outside. My code is:
<div id="mydiv">The div must be above button</div>
$('#mydiv').click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$('#mydiv').fadeOut(300);
});
But it is not working for me ...
UPDATE
Full code is presented below. When I click on a button it shows a div
above, so I need to hide this div
when I click outside.
<div id="but" style="text-align: right;"><button type="button">Show Div!</button></div>
<div id="mydiv" style="display:none;">The div must be above button</div>
$("#but button").click(function(){
var pos = $(this).offset(),
div = $("#mydiv");
// Make it visible off-page so
// we can measure it
div.css({
"display": "block",
"border": "1px solid black",
"position": "absolute",
"left": -10000,
"top": 0
});
// Move it where we want it to be
div.css({
"left": pos.left - 40,
"top": pos.top - div.height() - 10
});
});
$('#myDiv').click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$('#mydiv').fadeOut(300);
});
Try the below solution which is easy and it's even working recursive:
The simplest way is to capture the onclick event of the document. You know this click event happens outside the element that you are interested, then just return false. I used this trick to hide a popup menu when a click outside the menu event fires.
Better than binding click event to document, you can use this kind of snippet:
SEE DEMO
In javascript click is a bubbling event, it starts on a div and goes up to a document. When you stop an event propagation using a
stopPropagation()
function, a click on the document is not handled. So, to solve your problem just removee.stopPropagation()
.DEMO 1
The best way is:
DEMO 2
Ok, let's imagine, that when you are clicking on a container with id "wrapperId", "myDiv" should be hidden:
if container is a document, you can use
$(document)
instead of$("#wrapperId")
.DEMO 3
You should stop a click event propagation when you are clicking the button. Make these changes:
DEMO 4
try
.blur()
, and like this:Hope it help
check this one
show or hide me by clickingyou can checkout this link for example..
check this http://jsfiddle.net/x5Env/