Ich möchte ein Div ausblenden, wenn Benutzer irgendwo auf der Seite außerhalb dieser div klicken. Wie kann ich das mit rohen Javascript oder jQuery tun?Ereignis auf einen Klick überall auf der Seite außerhalb der spezifischen div
Antwort
Bringen Sie dem Dokument ein Click-Ereignis das div zu verbergen:
$(document).click(function(e) {
$('#somediv').hide();
});
ein Click-Ereignis auf die div anhängen Klicks auf ihn zu stoppen, um das Dokument von Vermehrungs
$('#somediv').click(function(e) {
e.stopPropagation();
});
Vielen Dank! Das hat genau so funktioniert, wie ich es wollte. – sumek
AFAIK, mit jQuery in der zweiten Event-Handler müssen Sie nur "false zurückgeben;" um die Ausbreitung zu stoppen. http://docs.jquery.com/Events/click (am Ende der Seite) – scunliffe
@scunliffe - Das stimmt, sie machen im Grunde dasselbe. Das Schöne an stopProp ist, dass es nicht die letzte Zeile sein muss, also können Sie es zum Beispiel zur besseren Lesbarkeit immer in die erste Zeile setzen. –
Erste Idee, in raw Javascript (von this post):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
#mydiv{
background-color: #999999;
height: 100px;
width: 100px;
}
-->
</style>
<script type="text/javascript">
document.onclick=check;
function check(e)
{
var target = (e && e.target) || (event && event.srcElement);
var obj = document.getElementById('mydiv');
if(target!=obj){obj.style.display='none'}
}
</script>
</head>
<body>
<div id="mydiv">my div</div>
</body>
</html>
Getestet mit IE6 und FireFox3.1, es funktioniert wie beworben.
Es ist sicher klingt wie Sie möchten einen modalen Dialog. Dieses jQuery Plugin http://code.google.com/p/simplemodal/ sieht aus wie es Potential hat.
Wenn das div den Fokus hat, können Sie an das Onblur-Ereignis anhängen.
- 1. einen auf Klick spezifischen Stil Medienabfrage Anwenden
- 2. Entfernen Klasse nach Klick außerhalb der div
- 3. Klick außerhalb DIV
- 4. Menü auf Klick außerhalb schließen
- 5. Erstellen einer Seite innerhalb einer div Aktualisierung auf einen Klick
- 6. Erfolgsfunktionen aktualisieren div auf der übergeordneten Seite
- 7. Wie kann ich beim Laden der Seite einen Klick auf einen bestimmten Teil der Seite generieren?
- 8. auf Klick auf dem Etikett auf der nächsten Seite
- 9. Zugriff außerhalb der Root-Div von einem Klick mit jQuery
- 10. auf Klick außerhalb der Link schließen jquery Dropdown
- 11. Javascript zentriert ein div auf der Seite
- 12. Click-Ereignis auf JavaScript createn div
- 13. ein Ereignis auslösen, wenn der Benutzer auf der Seite
- 14. Wie auf Klick-Ereignisse auf der ganzen Seite in Meteor zu hören?
- 15. einen Knopf auf der rechten Seite in einer Navigationsleiste ausrichten einen Rand auf der rechten Seite
- 16. Update div auf Ereignis
- 17. asp.net Radio Button auf Klick-Ereignis ohne Seite laden
- 18. JQuery Klick außerhalb mehrerer div/Elemente
- 19. Detect Klick außerhalb div mit Javascript
- 20. In angular2 gibt die Taste einen beliebigen Klick-Event auf der Seite ein?
- 21. automatisch div auf Seite laden
- 22. UItextView und Backspace Klick Ereignis auf der Tastatur
- 23. Sticky div auf der linken Seite, scroll auf der rechten Seite
- 24. ein Ereignis Put (Klick) auf Daten-Tag
- 25. Capturing Klick außerhalb einer absoluten positionierte div
- 26. Feste Breite div auf der linken, füllen verbleibende Breite div auf der rechten Seite
- 27. ASP.NET Button Klick-Ereignis funktioniert nur, wenn auf der obersten Ebene Master-Seite
- 28. Feste Breite div auf der linken Seite und Disqus auf der rechten Seite
- 29. capture klicken auf div um einen iframe
- 30. div auf Seite blättern
Ich denke, das jQuery focusout() - Event wird Ihr Problem lösen. –