2016-04-23 85 views
1

我有問題,jQuery可以識別錯誤的ID。當用戶更改他們的seks(男性或女性)時,jQuery會將新ID設置爲四個元素(請參見下面的代碼)。 問題是,當我選擇女性時,jQuery會識別我是男性。也許jQuery會在頁面加載時看到元素的ID。jQuery識別錯誤的ID

四個要素

        <div class="btn-group _hsync_reg_sex" data-toggle="buttons"> 
            <br /> 
            <?php 
             if($_hsync_rasa == 0) 
             { 
             ?> 
              <label class="btn btn-default active" id="_hsync_bijelac_m"> 
               <input type="radio" name="_hsync_rasa" id="bijelac" autocomplete="off" checked> Bijelac 
              </label> 
             <?php 
             } 
             else 
             { 
              ?> 
              <label class="btn btn-default" id="_hsync_bijelac_m"> 
               <input type="radio" name="_hsync_rasa" id="bijelac" autocomplete="off"> Bijelac 
              </label>             
              <?php 
             } 
            ?> 
            <?php 
             if($_hsync_rasa == 1) 
             { 
             ?> 
              <label class="btn btn-default active" id="_hsync_crnac_m"> 
               <input type="radio" name="_hsync_rasa" id="crnac" autocomplete="off" checked> Crnac 
              </label> 
             <?php 
             } 
             else 
             { 
              ?> 
              <label class="btn btn-default" id="_hsync_crnac_m"> 
               <input type="radio" name="_hsync_rasa" id="crnac" autocomplete="off"> Crnac 
              </label>             
              <?php 
             } 
            ?> 
            <?php 
             if($_hsync_rasa == 2) 
             { 
             ?> 
              <label class="btn btn-default active" id="_hsync_hispanac_m"> 
               <input type="radio" name="_hsync_rasa" id="hispanac" autocomplete="off" checked> Hispanac 
              </label> 
             <?php 
             } 
             else 
             { 
              ?> 
              <label class="btn btn-default" id="_hsync_hispanac_m"> 
               <input type="radio" name="_hsync_rasa" id="hispanac" autocomplete="off"> Hispanac 
              </label>             
              <?php 
             } 
            ?> 
            <?php 
             if($_hsync_rasa == 3) 
             { 
             ?> 
              <label class="btn btn-default active" id="_hsync_azijac_m"> 
               <input type="radio" name="_hsync_rasa" id="azijac" autocomplete="off" checked> Azijac 
              </label> 
             <?php 
             } 
             else 
             { 
              ?> 
              <label class="btn btn-default" id="_hsync_azijac_m"> 
               <input type="radio" name="_hsync_rasa" id="azijac" autocomplete="off"> Azijac 
              </label>             
              <?php 
             } 
            ?>          
           </div> 

jQuery代碼(當用戶改變性別)

  $("#_hsync_musko").click(function() { 
      var _rasa = Math.floor((Math.random() * 3) + 1); 
      $('#_hsync_trenutna_rasa').attr("value",_rasa); 

      if(_rasa == 0) 
      { 
       $('#_hsync_skin_dio_bijelac_m').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_muski_skinB; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinB; ?>.png"); 
      } 
      if(_rasa == 1) 
      { 
       $('#_hsync_skin_dio_crnac_m').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_muski_skinC; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinC; ?>.png"); 
      } 
      if(_rasa == 2) 
      { 
       $('#_hsync_skin_dio_hispanac_m').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_muski_skinH; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinH; ?>.png"); 
      } 
      if(_rasa == 3) 
      { 
       $('#_hsync_skin_dio_azijac_m').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_muski_skinA; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinA; ?>.png"); 
      }     

      $('#_hsync_bijelac_z').attr("id","_hsync_bijelac_m"); 
      $('#_hsync_crnac_z').attr("id","_hsync_crnac_m"); 
      $('#_hsync_hispanac_z').attr("id","_hsync_hispanac_m"); 
      $('#_hsync_azijac_z').attr("id","_hsync_azijac_m"); 

      $('#_hsync_skin_dio_bijelac_z').hide(); 
      $('#_hsync_skin_dio_crnac_z').hide(); 
      $('#_hsync_skin_dio_hispanac_z').hide(); 
      $('#_hsync_skin_dio_azijac_z').hide(); 

      _hsync_prilagodi_rasa_tipke(0, _rasa); 
     }); 

     $("#_hsync_zensko").click(function() { 
      var _rasa = Math.floor((Math.random() * 3) + 1); 
      $('#_hsync_trenutna_rasa').attr("value",_rasa); 

      if(_rasa == 0) 
      { 
       $('#_hsync_skin_dio_bijelac_z').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_zenski_skinB; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinB; ?>.png"); 
      } 
      if(_rasa == 1) 
      { 
       $('#_hsync_skin_dio_crnac_z').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_zenski_skinC; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinC; ?>.png"); 
      } 
      if(_rasa == 2) 
      { 
       $('#_hsync_skin_dio_hispanac_z').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_zenski_skinH; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinH; ?>.png"); 
      } 
      if(_rasa == 3) 
      { 
       $('#_hsync_skin_dio_azijac_z').show(); 
       $('#_hsync_trenutni_skin_id').attr("value","<?php echo $_hsync_zenski_skinA; ?>"); 
       $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinA; ?>.png"); 
      } 

      $('#_hsync_bijelac_m').attr("id","_hsync_bijelac_z"); 
      $('#_hsync_crnac_m').attr("id","_hsync_crnac_z"); 
      $('#_hsync_hispanac_m').attr("id","_hsync_hispanac_z"); 
      $('#_hsync_azijac_m').attr("id","_hsync_azijac_z"); 

      $('#_hsync_skin_dio_bijelac_m').hide(); 
      $('#_hsync_skin_dio_crnac_m').hide(); 
      $('#_hsync_skin_dio_hispanac_m').hide(); 
      $('#_hsync_skin_dio_azijac_m').hide(); 

      _hsync_prilagodi_rasa_tipke(1, _rasa);    
     });  

當我點擊按鈕比賽

  $("#_hsync_bijelac_m").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","0"); 
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinB; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_m').show(); 
      $('#_hsync_skin_dio_crnac_m').hide(); 
      $('#_hsync_skin_dio_hispanac_m').hide(); 
      $('#_hsync_skin_dio_azijac_m').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_muski_skinB; ?>); 
      $('#skin_slika_<?php echo $_hsync_muski_skinB; ?>').attr("class","img-circle _hsync_reg_img_c");  
     }); 

     $("#_hsync_crnac_m").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","1"); 
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinC; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_m').hide(); 
      $('#_hsync_skin_dio_crnac_m').show(); 
      $('#_hsync_skin_dio_hispanac_m').hide(); 
      $('#_hsync_skin_dio_azijac_m').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_muski_skinC; ?>); 
      $('#skin_slika_<?php echo $_hsync_muski_skinC; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_hispanac_m").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","2");    
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinH; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_m').hide(); 
      $('#_hsync_skin_dio_crnac_m').hide(); 
      $('#_hsync_skin_dio_hispanac_m').show(); 
      $('#_hsync_skin_dio_azijac_m').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_muski_skinH; ?>); 
      $('#skin_slika_<?php echo $_hsync_muski_skinH; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_azijac_m").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","3"); 
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_muski_skinA; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_m').hide(); 
      $('#_hsync_skin_dio_crnac_m').hide(); 
      $('#_hsync_skin_dio_hispanac_m').hide(); 
      $('#_hsync_skin_dio_azijac_m').show(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_muski_skinA; ?>); 
      $('#skin_slika_<?php echo $_hsync_muski_skinA; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_bijelac_z").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","0");    
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinB; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_z').show(); 
      $('#_hsync_skin_dio_crnac_z').hide(); 
      $('#_hsync_skin_dio_hispanac_z').hide(); 
      $('#_hsync_skin_dio_azijac_z').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_zenski_skinB; ?>); 
      $('#skin_slika_<?php echo $_hsync_zenski_skinB; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_crnac_z").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","1");    
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinC; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_z').hide(); 
      $('#_hsync_skin_dio_crnac_z').show(); 
      $('#_hsync_skin_dio_hispanac_z').hide(); 
      $('#_hsync_skin_dio_azijac_z').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_zenski_skinC; ?>); 
      $('#skin_slika_<?php echo $_hsync_zenski_skinC; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_hispanac_z").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","2"); 
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinH; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_z').hide(); 
      $('#_hsync_skin_dio_crnac_z').hide(); 
      $('#_hsync_skin_dio_hispanac_z').show(); 
      $('#_hsync_skin_dio_azijac_z').hide(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_zenski_skinH; ?>); 
      $('#skin_slika_<?php echo $_hsync_zenski_skinH; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     }); 

     $("#_hsync_azijac_z").click(function() { 
      $('#_hsync_trenutna_rasa').attr("value","3");    
      $('#_hsync_trenutni_skin').attr("src","_hsync_style/_hsync_images/_hsync_skins/_hsync_skin_<?php echo $_hsync_zenski_skinA; ?>.png"); 
      $('#_hsync_skin_dio_bijelac_z').hide(); 
      $('#_hsync_skin_dio_crnac_z').hide(); 
      $('#_hsync_skin_dio_hispanac_z').hide(); 
      $('#_hsync_skin_dio_azijac_z').show(); 
      $('#skin_slika_'+ $("#_hsync_trenutni_skin_id").val() +'').attr("class","img-circle _hsync_reg_img");  
      $('#_hsync_trenutni_skin_id').attr("value", <?php echo $_hsync_zenski_skinA; ?>); 
      $('#skin_slika_<?php echo $_hsync_zenski_skinA; ?>').attr("class","img-circle _hsync_reg_img_c"); 
     });  
+0

不要使用相同的ID,它只是無效和錯誤。使用唯一的ID,或者用類代替它,然後選擇'$('。bijelac')'而不是'$('#bijelac')' –

+0

我不使用它。 _hsync_hispanac_m和_hsync_hispanac_z不一樣? ID不在輸入標籤上,它在標籤標籤上。更好地看代碼。謝謝! – SilvioCro

回答

0

特殊照顧的代碼是有點混亂,但是從我看到你有name屬性name="_hsync_rasa"一些單選按鈕,這樣你就可以使用change事件檢測這些元素的任何變化:

$("input[name=_hsync_rasa]:radio").on('change', function() { 
    var selectedRadio = $("input[name=_hsync_rasa]:radio:checked"); 
    alert('Selected ID - ' + selectedRadio.attr('id')); 
}); 

這只是一個例子獲得正確的無線電元素,但因爲你的代碼不夠清楚(對我來說),這是我能做的最好的幫助。

您可能需要將.on('change', function() {替換爲.on('click', function() {,因爲它可能會觸發事件兩次(一次是未選中的元素,緊接着是新的選定電臺之後)。不確定,但以防萬一您發現它正在發生。

+1

一切正常。非常感謝! – SilvioCro