jquery variabele wordt niet goed doorgegeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arend b

arend b

04/03/2013 17:55:58
Quote Anchor link
goedemiddag,

ik heb het volgende script waarbij ik wil dat hij de waarde laat zien van het element waar ik op druk. dit gebeurd deels. Hij laat een waarde zien maar dat is de waarde 3. ook als ik op de eerste of de tweede druk.

hebben jullie enig idee waarom?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
    $(".menu").click(function() {
            var info = $(this).attr("value");
            if (info = "1") { $("#info").html(info);  };
            if (info = "2") { $("#info").html(info);  };
            if (info = "3") { $("#info").html(info);   };
    });
    
});
</script>
 
PHP hulp

PHP hulp

02/05/2024 04:26:11
 
Erwin H

Erwin H

04/03/2013 17:58:53
Quote Anchor link
Dit: if (info = "3") geeft de waarde "3" aan info.
Dit: if (info == "3") controleert of info gelijk is aan "3"

Jij gebruikt de eerste, maar ik denk (lees: weet zeker) dat je de tweede moet hebben.
 
Arend b

arend b

04/03/2013 18:02:03
Quote Anchor link
ik heb beide opties opnieuw geprobeerd maar bij beide opties geeft hij niets weer:s
 
Erwin H

Erwin H

04/03/2013 18:40:28
Quote Anchor link
Je moet niet 'beide' opties proberen, want de eerste is duidelijk niet de goede. Je wil een vergelijking maken en een vergelijking maak je met == of ===. Dus laat eens zien wat je dan geprobeerd hebt.
 
Arend b

arend b

04/03/2013 18:48:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
    $(".menu").click(function() {
            var info = $(this).find(".menu").attr("value");
            if (info === "1") { $("#info").html(info);  };
            if (info === "2") { $("#info").html(info);  };
            if (info === "3") { $("#info").html(info);  };
    });
    
});
</script>


nu wordt er niets in de div weergegeven.
bedankt voor je snelle reactie erwin
 
Wouter J

Wouter J

04/03/2013 18:59:11
Quote Anchor link
Arend, je code klopt ook niet. Binnen de callback van een event (in jQuery eigenlijk binnen elke callback) zal $(this) altijd naar het huidige element verwijzen. Je hebt je click event op een .click element gezet. Als je dus op eentje klikt (bijv. 'Line Up') zal $(this) verwijzen naar dat .menu element (de li dus). Je kunt dan dus niet nog eens .find('.menu') uitvoeren.

Tevens is wat je nu hebt fout, een list item (<li>) element kan nooit een value attribute hebben.
 
Erwin H

Erwin H

04/03/2013 19:02:50
Quote Anchor link
Naast wat Wouter volkomen terecht zegt, kan je beter niet 3x een if statement doen, maar een if else constructie. Je wil er namelijk altijd maar 1 tonen.
 
Arend b

arend b

04/03/2013 19:22:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="info">
</div>
<ul>
<li class="menu" value="1">Algemene informatie</li>
<li class="menu" value="2">Line up</li>
<li class="menu" value="3">Locatie</li>
</ul>
<script>
$(document).ready(function(e) {
    $(".menu").click(function() {
            var info = $(this).attr("value");
            if (info === "1") {
                $("#info").html(info);
            } else if (info === "2") {
                $("#info").html(info);
            } else {
                $("#info").html(info);  
            };
    });
    
});
</script>


hij werkt nu wel gelukkig. Een hele simpele if else constructie inderdaad.

wouter:
je hebt helemaal gelijk ik had het verkeerd gelezen je kunt value wel gebruiken bij de <ol> tag. dus in dit geval maak ik een eigen waarde aan.

bedankt voor de reacties
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.