2010-08-04 4 views
0

Этот мир кода работает для первого щелчка. но, похоже, он не сможет получить новый идентификатор от следующего клика. идея заключается в том, чтобы показать одну часть формы и щелкнуть по кнопке, которая сначала скрывается, и показывает вторую часть. любая идея, что я делаю неправильно? Я предполагаю, что это имеет какое-то отношение к «этому», но из моего понимания он также должен получить идентификатор от второй ссылки.Mootools Click Event Problem

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

HTML, следует этой схеме:

<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> 

ответ

1

Если я понимаю пример, у вас есть куча div с id page_1, page_2 и так далее. В каждом div есть div с id «submit_box». Когда вы написали $('submit_box').getElements('a'), он добавит событие только к первому div, и идентификатор должен быть уникальным. У вас не может быть более одного элемента с уникальным идентификатором на странице. Поэтому, чтобы ваш пример работы изменил идентификатор на имя класса и использовал $$ ('div.submit_box a').

0

Использование ID's несколько раз на странице разрушенную код! После того, как он был исправлен, он отлично работал

+0

Должен быть лучший способ написать это. Пожалуйста, сделайте jsfiddle (jsfiddle.net), и, возможно, кто-то может помочь вам правильно управлять вами. –