[js/jQuery] div hiden onclick() m.u.v. 1 item

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 22:13
hoi allen,

ik heb een label op mijn formulier die een div tevoorschijn tovert. Deze div wil ik verbergen op het moment dat ik ergens op pagina klik met uitzondering van een klik op het label .
Ik dacht dit te kunnen doen met de NOT operator, maar dit blijkt niet te werken. Iemand een idee?

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript" language="javascript">
    $(document).ready(function (event, args) {
        $('body').not($('#<%= OpenDiv.ClientID %> ')).click(function (event, args) { $('#divProperties').hide(); });
        $('#<%= OpenDiv.ClientID %> ').click(function (event, args) {
            $('#divProperties').show(); 
        });
    });    
</script>

<label id="OpenDiv" runat="server">OPEN DIV</label>

<div id="divProperties" style="display:none;">
    div properties
</div>

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 12-09 14:10
Als je even wat alerts zet, zie je dat hij 2x aangeroepen wordt dan, eerst om te showen, dan om te verbergen.
Volgens deze Stackoverflow moet je event.stopPropagation(); gebruiken. (En html ipv body, omdat dat altijd 100% is.)
Voorbeeldje: http://jsfiddle.net/Pt2fb/2/

Acties:
  • 0 Henk 'm!

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 22:13
Van die alerts (ik gebruikte debugger i.c.m. Visual Studio) had ik gezien. Vandaar ook mijn vraag hier, omdat ik niet snapte waarom de NOT-operator niet werkte.

Je voorbeeld lijkt te werken in dit stukje testcode. Ga het nu in de applicatie zelf proberen.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
pdebie schreef op woensdag 25 april 2012 @ 10:38:
Van die alerts (ik gebruikte debugger i.c.m. Visual Studio) had ik gezien. Vandaar ook mijn vraag hier, omdat ik niet snapte waarom de NOT-operator niet werkte.
De not operator is enkel een filter op de op dat moment reeds geselecteerde set elementen. Je kunt er geen nieuwe elementen mee selecteren. Dat had je makkelijk kunnen weten.

Acties:
  • 0 Henk 'm!

  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 28-08 20:24
Kun je geen functie schrijven binnen jQuery welke de div verbergt en deze binden aan het onblur event van het label?

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


Acties:
  • 0 Henk 'm!

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017

RSD

Volgens mij is het ook beter om een div op height=0 te zetten ipv display: none, ivm compatibiliteit met oudere browsers.

Acties:
  • 0 Henk 'm!

  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Welke browsers zijn dit dan wel volgens jou? display zit al in de CSS2 spec en die is al in de vorige eeuw gepubliceerd :+ .
Pagina: 1