Domanda

Questa pace di codice funziona per il primo scatto. ma poi sembra non essere in grado di ottenere nuovi ID dal prossimo scatto. L'idea alla base è quella di mostrare un pezzo di una forma e con clic su un pulsante nasconde prima e spettacoli seconda parte. qualsiasi idea di cosa sto facendo di sbagliato? Credo che abbia qualcosa a che fare con "questo", ma dalla mia comprensione si dovrebbe ottenere l'id dal secondo link anche.

        window.addEvent('domready', function() 
            {
            $('page_2').slide('hide');
            $('page_3').slide('hide');
            $('page_4').slide('hide');
            $('page_5').slide('hide');
            var togglePrefix = 'toggle_', boxPrefix = 'page_', emptyPrefix = '';
            var links = $('submit_box').getElements('a');
            links.addEvent('click', function(e)
                {
                e.stop();
                var id = $(this.get('id').replace(togglePrefix,emptyPrefix));
                var id_new = parseInt($(this).get('id').replace(togglePrefix, emptyPrefix)) + 1; 
                var next = ('page_'+id_new);
                var id_old = $(this.get('id').replace(togglePrefix,boxPrefix));
                $(id_old).set('slide', {duration: 'long', transition: 'linear'});
                $(id_old).slide('out');
                $(next).slide('in');
                });
            });

l'html segue questo schema:

<div id="page_1">

    <div id="inhalt-gewinn">
      <div id="gewinn_bild"></div>
      <div id="gewinn_form">
          <form id="gewinnspiel" name="gewinnspiel" method="post" action="<?=$_SERVER[PHP_SELF]; ?>">
              <div id="input_box">
                  <div><input type="radio" name="frage1" value="Kamille" /><span>Kamille</span></div>
                  <div><input type="radio" name="frage1" value="Kaktus" /><span>Kaktus</span></div>
                  <div><input type="radio" name="frage1" value="Krokus" /><span>Krokus</span></div>

              </div>
              <div id="submit_box"><a id="toggle_1" class="frage">nächste Frage...</a></div>

      </div>
      <div id="gewinn_werbung"></div>
    </div>
</div>
È stato utile?

Soluzione

Se ho capito l'esempio, hai un sacco di div con id PAGE_1, page_2 e così via. In ogni div è un div con il "submit_box" id. Quando hai scritto $('submit_box').getElements('a') si aggiungerà l'evento solo alla prima div causa un id deve essere unico. Non puoi avere più di un elemento con un ID univoco nella pagina. Quindi, per ottenere la modifica esempio lavoro l'id di un nome di classe e l'uso $$ ( 'div.submit_box un').

Altri suggerimenti

L'uso di ID's più volte sulla pagina rovinato il codice! Dopo aver sistemato questo ha funzionato bene

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top