Как да избегна двойното кликане на радио бутона ?

svet1bg

Registered
Немога да се преборя с този проблем как да не кликам два пъти на радио бутона ??? Благодаря предварително ?

DEMO
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
     <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>ВЪПРОСИ И ОТГОВОРИ (ТЕСТ)</title>
          <script type="text/javascript" src="../js/jquery-1.4.4.js"></script>
          <script type="text/javascript">
               $(function() {
                    var re=0
                    $('input').click(function(){
                         var broiach = $(this).attr('class');
                         $('<div id="potvardi">Сеигурни ли сте във вашия отговор ? Ако да кликнете пак на него !</div>').appendTo('div.'+broiach);
                         $('input#r'+broiach).click(function(){
                              var val1 = $(this).attr('value');
                              $('input#r'+broiach).remove();
                              $('div#potvardi').remove();
                              $('div#otgovor').remove();
                              $('<div id="otgovor">Вашия отговор е '+val1+'</div>').appendTo('body');
                              if (broiach==0) {
                                   if (val1==4) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              } else if (broiach==1){
                                   if (val1==2) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              } else {
                                   if (val1==4) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              }

                         });
                    });
               });
          </script>
     </head>
     <body>
          <?php
          $vaprosi=array('Колко прави : 2+2=?',
               'Колко прави : 4-2=?',
               'Колко прави : 2*2=?');
          ?>
          <center>
               <a href="index.php">HOME</a>
               <div id="konteiner">
                    <h1>Въпроси</h1>
                    <hr>
                    <?php
                    $count=count($vaprosi)-1;
                    ?>
                    
                    <?php
                    foreach ($vaprosi as $key => $var) {
                         ?>
                    <div id="vaprosi" class="<?php echo $key; ?>">

                              <?php echo $var; ?><br>
                              
                         <div id="ot">
                              2<input id="r<?php echo $key; ?>" class="<?php echo $key; ?>" type="radio" name="<?php echo $key; ?>" value="2"/><br>
                              4<input id="r<?php echo $key; ?>" class="<?php echo $key; ?>" type="radio" name="<?php echo $key; ?>" value="4"/><br>
                              6<input id="r<?php echo $key; ?>" class="<?php echo $key; ?>" type="radio" name="<?php echo $key; ?>" value="6"/><br>
                         </div>
                    </div>
                    <hr>
                    <?php
                    }


                    ?>
               </div>
          </center>
     </body>
</html>
 
Еми прочети си функцията, да видиш какво прави :) До колкото погледнах има нещо като брояч, който трябва да махнеш и да попреправиш функцията :)
 
Да де той брояча ми трбе за пхп по дилу да изведа трите тезултата и всеки див да земе ид="нещо0" до края на брояча и полсе да мога в джс да знам точно кой див обработвам т.е.

Код:
$('input').click(function(){
     var broiach = $(this).attr('class');
Като кликна на някой инпут брояча да вземе класа на този инпут който е :

Код:
<input id="r<?php echo $key; ?>" class="<?php echo $key;  ...

т.е. вече знам за кой въпрос отговаряш.

пробвах да заменя първата функция :
Код:
$('input').click(function(){ 
.............
}
със .ховер() но кода се бъгясва и сатват стрнни неща.
Какво друго мога да направя защото попринцип джс ми е мътна индия и се уча като грешен дявол ????

Благодаря за вниманието .
 
Рших проблема :

СТАР КОД :

Код:
<script type="text/javascript">
               $(function() {
                    var re=0
                    $('input').click(function(){
                         var broiach = $(this).attr('class');
                         $('<div id="potvardi">Сеигурни ли сте във вашия отговор ? Ако да кликнете пак на него !</div>').appendTo('div.'+broiach);
                         $('input#r'+broiach).click(function(){
                              var val1 = $(this).attr('value');
                              $('input#r'+broiach).remove();
                              $('div#potvardi').remove();
                              $('div#otgovor').remove();
                              $('<div id="otgovor">Вашия отговор е '+val1+'</div>').appendTo('body');
                              if (broiach==0) {
                                   if (val1==4) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              } else if (broiach==1){
                                   if (val1==2) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              } else {
                                   if (val1==4) {
                                        $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                        re=re+2;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   } else {
                                        $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                        re=re-1;
                                        $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                                   }
                              }
                         });
                    });
               });
          </script>

НОВ КОД :

Код:
<script type="text/javascript">
               $(function() {
                    var re=0
                    $('input').click(function(){
                         var broiach = $(this).attr('class');
                         var val1 = $(this).attr('value');
                         $('input#r'+broiach).remove();
                         $('div#potvardi').remove();
                         $('div#otgovor').remove();
                         $('<div id="otgovor">Вашия отговор е '+val1+'</div>').appendTo('body');
                         if (broiach==0) {
                              if (val1==4) {
                                   $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                   re=re+2;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              } else {
                                   $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                   re=re-1;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              }
                         } else if (broiach==1){
                              if (val1==2) {
                                   $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                   re=re+2;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              } else {
                                   $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                   re=re-1;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              }
                         } else {
                              if (val1==4) {
                                   $('<div id="otgovor">За верен отговор получавате 2 точки.</div>').appendTo('body');
                                   re=re+2;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              } else {
                                   $('<div id="otgovor">За грешен отговор получавате -1 точки.</div>').appendTo('body');
                                   re=re-1;
                                   $('<div id="otgovor">Вашия резултат до момента е = '+re+'<hr></div>').appendTo('body');
                              }
                         }
                    });
               });
</script>

разбрах каква е била грешката ми поставил съм функция във функцията и така втората функция прекъсва кода и чака да бъде "кликнато втори път".

Благодаря на shterev, че ме накара да си прочета кода малко по внимателно и да си отговоря на вупросите кое какво прави т.е. да си дебъгна кода което за мене на джс е доста гадно нещо.
+1 за shterev
 

Back
Горе