Mootools Click Problema Evento
-
25-09-2019 - |
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>
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