سؤال

يعمل سلام الرمز هذا للنقر الأول. ولكن يبدو أن الأمر لا يكون قادرًا على الحصول على معرف جديد من النقر التالي. الفكرة وراء ذلك هي إظهار قطعة واحدة من النموذج ومع النقر على زر يختبئ أولاً ويظهر الجزء الثاني. أي فكرة ماذا أفعل خطأ؟ أعتقد أن الأمر يتعلق بـ "هذا" ولكن من فهمي يجب أن يحصل على الهوية من الرابط الثاني أيضًا.

        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>
هل كانت مفيدة؟

المحلول

إذا فهمت المثال ، فقد حصلت على مجموعة من divs مع id page_1 و page_2 وما إلى ذلك. في كل div هو div مع معرف "submit_box". عندما كتبت $('submit_box').getElements('a') سيضيف الحدث فقط إلى DIV الأول لأن المعرف يجب أن يكون فريدًا. لا يمكنك الحصول على المزيد من العناصر التي تحتوي على معرف فريد في الصفحة. حتى تحصل على مثالك ، قم بتغيير المعرف إلى اسم className واستخدم $$ ('div.submit_box a').

نصائح أخرى

دمر استخدام المعرف عدة مرات على الصفحة الكود! بعد إصلاح هذا الأمر يعمل بشكل جيد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top