[javascript] jquery checkbox events

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Topicstarter
Hi


Ik wil graag m'n menu checkboxen op dezelfde wijze afhandelen als links:

code:
1
2
3
    $("#menuitem").click(function() {
        doMenuitem();
    });


Op deze manier heb ik nl geen javascript functienamen in quotes staat, want m'n js obfuscator kan daar niet mee overweg.


code:
1
2
3
    $(":hiermagblijkbaarvanallesstaan").change(function(ev) {
           alert('....');
    });



dit is het beste wat ik kon vinden alleen werkt dit voor *alle* checkboxes ipv 1 bepaalde.
Hoe kan ik dit oplossen?

alvast bedankt :)

Acties:
  • 0 Henk 'm!

Verwijderd

checkbox een id geven en dan
code:
1
2
3
4
$("#checkboxIDnaampje").click(function(){

//doe iets
});


of begrijp ik je vraag nou niet helemaal goed?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sponz schreef op maandag 28 september 2009 @ 14:12:
Ik wil graag m'n menu checkboxen op dezelfde wijze afhandelen als links:
Niet dat ik helemaal begrijp wat je bedoelt, maar checkboxes en links zijn 2 verschillende dingen. Die hebben elk hun eigen gebruik en doel; ik acht de kans zeer waarschijnlijk dat je ze dus ook niet op dezelfde wijze wil afhandelen ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Switchie
  • Registratie: April 2009
  • Niet online

Switchie

Mr. Evil Genius

Voor zover ik het begrijp is het zijn bedoeling om een checkbox te kunnen 'aanvinken' door ook op de achterstaande tekst te kunnen klikken. Inderdaad heel wat anders dan een link dus behalve dan dat er doormiddel van het klikken op een stuk tekst een functie volgt ;)

'Future proof' (de; v) Verschijnsel waarbij men een dure aankoop rechtvaardigt door innovatie te negeren


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:22

MueR

Admin Tweakers Discord

is niet lief

Switcherd schreef op maandag 28 september 2009 @ 14:31:
Voor zover ik het begrijp is het zijn bedoeling om een checkbox te kunnen 'aanvinken' door ook op de achterstaande tekst te kunnen klikken. Inderdaad heel wat anders dan een link dus behalve dan dat er doormiddel van het klikken op een stuk tekst een functie volgt ;)
Je bedoelt een <label> element?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Topicstarter
Ik wil alleen weten wanneer iemand de checkbox aan of uit zet met jquery.

[ Voor 8% gewijzigd door Sponz op 28-09-2009 15:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Sponz schreef op maandag 28 september 2009 @ 15:08:
Ik wil alleen weten wanneer iemand de checkbox aan of uit zet met jquery.
De selector voor checkboxes is dacht ik zoiets

JavaScript:
1
2
3
4
5
$("input:checkbox").change(function(){

//evt even kijken welke checkbox is geklikt met $(this)..?

});


Maar het is me nog niet duidelijk wat je nu wilt. Wil je dat er iets gebeurt als je op een checkbox klikt, of wil je dat er iets gebeurt als je op een bepaalde checkbox klikt? In het eerste geval zie boven, in het tweede geval, zie mijn eerste reply.

Acties:
  • 0 Henk 'm!

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Topicstarter
Verwijderd schreef op maandag 28 september 2009 @ 15:32:
[...]


De selector voor checkboxes is dacht ik zoiets

JavaScript:
1
2
3
4
5
$("input:checkbox").change(function(){

//evt even kijken welke checkbox is geklikt met $(this)..?

});


Maar het is me nog niet duidelijk wat je nu wilt. Wil je dat er iets gebeurt als je op een checkbox klikt, of wil je dat er iets gebeurt als je op een bepaalde checkbox klikt? In het eerste geval zie boven, in het tweede geval, zie mijn eerste reply.
ik wil aan elke checkbox een change event hangen... In dit voorbeeld een checkbox waarmee een log venster zichtbaar/onzichtbaar kan worden gemaakt.

code:
1
2
3
4
5
    $(":togglelog").change(function(s) {
          if (s.originalTarget.name == "togglelog") {
                  userLog.setVisible(    $('input:checkbox[name=togglelog]').val()   );
        }       
    });



Dit werkt, alleen word dit voor ELKE checkbox in de dom dit aangeroepen en ELKE keer blijkt originalTarget.name hetzelfde... krijg hier een punthoofd van.

Maar bedankt iig :)

Acties:
  • 0 Henk 'm!

Verwijderd

Ik begrijp je hoe langer hoe minder.

Eerst zeg je
ik wil aan elke checkbox een change event hangen... In dit voorbeeld een checkbox waarmee een log venster zichtbaar/onzichtbaar kan worden gemaakt.
Dan zeg je
Dit werkt, alleen word dit voor ELKE checkbox in de dom dit aangeroepen en ELKE keer blijkt originalTarget.name hetzelfde... krijg hier een punthoofd van.
Je wilt aan elke checkbox een change event hangen. Die oplossing heb ik je gegeven.

Maar wat moet er nu per checkbox verschillen? De naam ofzo? Of de value van die checkbox? Want je wilt aan elke checkbox iets hangen. Toch? :?

Acties:
  • 0 Henk 'm!

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Topicstarter
Ik wil per checkbox een aparte funktie aanroepen:

code:
1
2
3
  <input id="CheckBox1" type="checkbox" onClick='check1();'">check1</input>
  <input id="CheckBox2" type="checkbox" onClick='check2();'">check2</input>
  <input id="CheckBox3" type="checkbox" onClick='check3();'">check3</input>


Maar dan niet in html, maar door er apart een event handler aan te hangen zodat de funktie namen niet in quotes komen te staan.

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En ook hier geldt weer: DUIDELIJKHEID! ;)

Maak even een kleine test-case en zet die online wat direct je probleem weergeeft :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Sponz
  • Registratie: Juni 2001
  • Niet online

Sponz

nul nest parfait saif moi

Topicstarter
Ja blijkbaar.

Maar ik ben d'r uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<html>
<body>

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $(".CheckBoxClass1").change(function(){
     alert( "check1: "+  $(this).is(":checked")    ) ;  
        if($(this).is(":checked")){
           // code checked
        }else{
           // code unchecked
        }
    });
   
   
   $(".CheckBoxClass2").change(function(){
     alert(  "check2: "+ $(this).is(":checked")    ) ;  
        if($(this).is(":checked")){
           // code checked
        }else{
           // code unchecked
        }
    });
   
   
    $(".CheckBoxClass3").change(function(){
     alert(  "check3: "+ $(this).is(":checked")    ) ;  
        if($(this).is(":checked")){
           // code checked
        }else{
           // code unchecked
        }
    });


});
</script>

</head>
<body>
   <input id="CheckBox1" type="checkbox" class="CheckBoxClass1">check1</input>
   <input id="CheckBox2" type="checkbox" class="CheckBoxClass2">check2</input>
   <input id="CheckBox3" type="checkbox" class="CheckBoxClass3">check3</input>
</body>
</html>


tja per checkbox een handler die de change event doet... das alles. Maar jquery werkt in dit geval via classes, het zal wel. Niet erg konsequent als je het mij vraagt.

iig bedankt voor 't mee denken.

Acties:
  • 0 Henk 'm!

Verwijderd

Scusi, kleine crash gehad, en je reply niet gezien. Om daar toch even op in te haken, je hoeft die class selector helemaal niet te gebruiken. $("#Checkbox1") is de selector die je bedoelt, dan heb je die class ook niet nodig. Waarom jij er een class bij verzint is me een raadsel, en dat jQuery die nodig zou hebben klopt niet.

Verder, waarom doe je drie keer dezelfde functie declareren? Of verschilt die code die je uitvoert bij checked of niet checked van elkaar?

Ik ken de rest van je script natuurlijk niet, maar ik zou er gewoon een functie van maken en even aan de hand van het id kijken welke input er geklikt is.

/edit dit type ik eerder
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
$(":checkbox").change(function(){

if($(this).attr("id") == 'CheckBox1') check1();
if($(this).attr("id") == 'CheckBox2') check2();
//etc

});

//of gewoon

$("#Checkbox1").click(function(){
check1();
});


zoiets dan?

[ Voor 56% gewijzigd door Verwijderd op 28-09-2009 17:34 . Reden: reboot :( ]


Acties:
  • 0 Henk 'm!

  • Kiphaas7
  • Registratie: Februari 2005
  • Laatst online: 17-09 21:21
.each() ?
Pagina: 1