Pregunta

Esta paz de código funciona para la primera posición. pero entonces parece no ser capaz de obtener nueva identificación a partir del próximo clic. la idea detrás de esto es para mostrar una pieza de una forma y con un clic en un botón que oculta primera y segunda parte muestra. alguna idea de lo que estoy haciendo mal? Creo que tiene algo que ver con "este" pero desde mi entender que debe recibir el id del segundo enlace también.

        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');
                });
            });

el html sigue este patrón:

<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>
¿Fue útil?

Solución

Si entiendo el ejemplo, tienes un montón de divs con PAGE_1 Identificación, page_2 y así sucesivamente. En cada div es un div con el "submit_box" id. Cuando escribió $('submit_box').getElements('a') que se sumará al evento sólo a la primera div causa una identificación tiene que ser único. No se puede tener más de un elemento con un ID único en la página. Así que para conseguir su cambio de trabajo ejemplo la identificación por un nombre de clase y el uso $$ ( 'div.submit_box a').

Otros consejos

El uso de ID's varias veces en la página arruinado el código! Después de la fijación de este funcionó bien

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top