Versio

jQuery show()

Overzicht Reageren

Pagina: 1 2 volgende »

Chi Lion

Chi Lion

02/02/2011 10:29:31
Quote Anchor link
Dit werkt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
    <button id="button1">Show it</button>
    <p style="display: none">Hello  2</p>
    <script>
        $("button1").click(function () {
        $("p").show("slow");
        });
    </script>

en dit wel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
    <button>Show it</button>
    <p style="display: none">Hello  2</p>
    <script>
        $("button").click(function () {
        $("p").show("slow");
        });
    </script>


Waarom? En hoe krijg ik voorbeeld 1 aan het werk zodat ik met meerdere buttons met een eigen ID kan werken?
 
PHP hulp

PHP hulp

25/05/2012 01:17:18
Gesponsorde koppelingen:
 
- Aar -

- Aar -

02/02/2011 10:31:28
Quote Anchor link
Ik mis:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$(document).ready(function(){
 
Chi Lion

Chi Lion

02/02/2011 10:32:31
Quote Anchor link
Het is ook een simpel snelle test. Waar zou dit volgens jou bij moeten staan? :)
Want, de onderste regel werkt wel, zonder die code.

Groeten :)
 
- Aar -

- Aar -

02/02/2011 10:33:51
Quote Anchor link
om je hele jQuery code heen ...

Basiskennis jQuery...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
      
 $("#button").click(function () {

Als de knop vaker voorkomt, moet je een class gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$(".button").click(function () {
Gewijzigd op 02/02/2011 10:35:26 door - Aar -
 
Ozzie PHP

Ozzie PHP

02/02/2011 10:35:45
Quote Anchor link
Bij voorbeeld 1:

$("button1")

moet zijn

$("#button1")
 
Chris
Beheerder

Chris

02/02/2011 10:38:44
Quote Anchor link
Zou toch nog eens naar de basis van selectors kijken!
 
Chi Lion

Chi Lion

02/02/2011 10:41:11
Quote Anchor link
Ok, heb het aangepast, en het werkt nu inderdaad.
Als ik jou code erom heen zet Aar werkt het niet meer.

Nu wil ik echter dat button1 P1 opent, button2 P2, etc.

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
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

    <button id="button1">Show it 1</button>
    <p id="p1" style="display: none">Hello  1</p>
    <button id="button2">Show it 2 </button>
    <p id="p2" style="display: none">Hello  2</p>
    <button id="button3">Show it 3</button>
    <p id="p3" style="display: none">Hello  3</p>
    
    <script>
        $("#button1").click(function () {
        $("#p1").show("slow");
        });
    </script>
  
    

Hoe verwerk ik daar nu in dat hij automatisch de verschillende buttons en P's pakt?

@Aar, kan het zijn omdat ik geen body etc erin heb staan dat het daarom niet werkt?
 
Ozzie PHP

Ozzie PHP

02/02/2011 10:48:15
Quote Anchor link
Chi Lion op 02/02/2011 10:41:11:
Hoe verwerk ik daar nu in dat hij automatisch de verschillende buttons en P's pakt?
Wat bedoel je nou? Gewoon de code kopieren en 1 vervangen door 2 en 3???? Toch niet zo moeilijk?

Chi Lion op 02/02/2011 10:41:11:
@Aar, kan het zijn omdat ik geen body etc erin heb staan dat het daarom niet werkt?
Je hebt toch wel een body in je pagina staan neem ik aan?
 
Chi Lion

Chi Lion

02/02/2011 10:50:48
Quote Anchor link
Nee, ik wat ik gepost heb ik alle code in de pagina, ik ben eerst puur aan het testen voor ik verder ga. Zal het erbij inzetten.

In feite zouden het oneindig veel buttons en oneindig veel P's kunnen zijn.
de ID's van button en P worden auto gegenereerd, alleen moet hij snappen dat het getal bij button ook het getal bij P wordt zeg maar.

Zo iets duidelijker?
 
Lauren Zonneveld

Lauren Zonneveld

02/02/2011 10:57:11
Quote Anchor link
In jouw voorbeeld kun je simpelweg next() gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<button>Show it 1</button>
<p style="display: none">Hello  1</p>
<button>Show it 2 </button>
<p style="display: none">Hello  2</p>
<button>Show it 3</button>
<p style="display: none">Hello  3</p>

<script type="text/javascript">
$("button").click(function () {
    $(this).next('p').show("slow");
});
</script>
 
Chi Lion

Chi Lion

02/02/2011 10:58:35
Quote Anchor link
Maar, wat als ik nu wil dat de vorige weer gesloten wordt?

Toevoeging op 02/02/2011 11:00:42:

Wacht, dat is me gelukt nu:
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
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
    </head>
    <body>
        <button>Show it 1</button>
        <p style="display: none">Hello  1</p>
        <button>Show it 2 </button>
        <p style="display: none">Hello  2</p>
        <button>Show it 3</button>
        <p style="display: none">Hello  3</p>

        <script type="text/javascript">
        $("button").click(function () {
        $(this).next('p').show("slow");
        $(this).prev('p').hide("slow");
        });
        </script>
    </body>
</html>


Maar waar gooi ik nu mijn document.ready in?
 
Ozzie PHP

Ozzie PHP

02/02/2011 11:05:27
Quote Anchor link
Je moet met id's werken. Via php geef je een id mee aan je p's en in je javascript.

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
<?php for($i=1;$i<11;$i++) {
  echo '<p id="p'.$i.'" style="display: none">Hello '.$i.'</p>';
  echo '<a href="#" id="button '.$i.'">klik '.$i.'</a>;
}
<
script type="text/javascript">
for($i=1;$i<11;$i++) {
  ?>

  $("#button <?php echo $i; ?>").click(function () {
    $("#p<?php echo $i; ?>").show("slow");
  });
  <?php
}
?>

</script>
Gewijzigd op 02/02/2011 11:10:09 door Ozzie PHP
 
Chi Lion

Chi Lion

02/02/2011 11:09:05
Quote Anchor link
Ozzie, ik denk dat de oplossing die ik nu heb net zo goed werkt? (zie post boven jou)
Jij enige idee waar ik Aar zijn document.ready in moet pleuren, aangezien je die zelf ook niet gebruikt...
 
Lauren Zonneveld

Lauren Zonneveld

02/02/2011 11:10:56
Quote Anchor link
Met document ready ga je pas functies uitvoeren als het volledige document is geladen. Als je dus je javascript in de head zet gebruik je document ready. In jouw geval komt de javascript na de HTML waar het naar verwijst dus is document ready niet nodig.

Als je het netjes wilt doen plaats je JS in de head, zonder document.ready zal je op deze manier een foutmelding krijgen:
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
23
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

        <script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function () {
                $('p').hide("slow");
                $(this).next('p').show("slow");
            });
        });
        </script>

    </head>
    <body>
        <button>Show it 1</button>
        <p style="display: none">Hello  1</p>
        <button>Show it 2 </button>
        <p style="display: none">Hello  2</p>
        <button>Show it 3</button>
        <p style="display: none">Hello  3</p>
    </body>
</html>
Gewijzigd op 02/02/2011 11:11:23 door Lauren Zonneveld
 
Ozzie PHP

Ozzie PHP

02/02/2011 11:11:09
Quote Anchor link
Ik heb m nog wat aangepast... nu heb je een link / button voor iedere p... Die document ready kun je om je javascript heen zetten.
Gewijzigd op 02/02/2011 11:12:40 door Ozzie PHP
 
Chi Lion

Chi Lion

02/02/2011 11:13:34
Quote Anchor link
Perfect all of u guys, tnx alot!
 
Karl Karl

Karl Karl

02/02/2011 14:26:14
Quote Anchor link
Dit kan veel generieker worden aangepakt: voorbeeld.
Bij Ozzie's script krijg je dus steeds maar weer dezelfde stuk code. Hier is al een opzet van hoe het beter kan, in principe kan het nog verder worden uitgewerkt.
 
Ozzie PHP

Ozzie PHP

02/02/2011 15:01:59
Quote Anchor link
Karl, in jouw voorbeeld vervangt ie telkens de ene p door de andere terwijl ts volgens mij wil dat ie ze afzonderlijk kan tonen en verbergen. Bijvoorbeeld dat je tegelijkertijd p1 en p3 toont. Kan dat in jouw opzet ook? Wel mooi gemaakt hoor :)

(is <button> een normaal html element?)
 
Karl Karl

Karl Karl

02/02/2011 16:02:47
Quote Anchor link
Ja, ik weet niet precies wat hij wilt.
Van die show() kan je toggle() maken. De methode eronder kan je dan weghalen.
Button is al minimaal vanaf html 4 aanwezig.
 
Ozzie PHP

Ozzie PHP

02/02/2011 16:05:59
Quote Anchor link
is dat ook een xhtml element?

Ben het nog nooit tegengekomen... of anders gezegd, ik heb het nooit gebruikt.
 
Karl Karl

Karl Karl

02/02/2011 16:11:48
Quote Anchor link
<!ENTITY % inline.forms "input | select | textarea | label | button">
http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict
Ja dus.
 

Pagina: 1 2 volgende »



Overzicht Reageren