2014-11-03 39 views
0

我有一個問題,在我的代碼jQuery點擊。我的代碼是這樣的:jquery clik不能在選擇標記在鉻

 <script> 
     $(document).ready(function(){ 
      $("#hide").click(function(){ 
      $(".mapg").hide(); 
      }); 
      $("#show").click(function(){ 
      $(".mapg").show(); 
      }); 
     }); 
    </script> 

    <select name="showmapg" id="showmapg" class="form-control" required> 
     <option value="0">Select</option> 
     <option id="show" value="1">Yes</option> 
     <option id="hide" value="2">No</option> 
    </select> 

    <p class="mapg" style="display: none;">Hello</p> 

我的代碼在firefox中工作,但它不適用於chrome。怎麼辦呢?謝謝

回答

3

您應該註冊點擊事件選擇元素本身,而不是它的選擇..

使之儘可能簡單。試試這個

$(document).ready(function(){ 
 
      $("#showmapg").change(function(){ // or .click(function(){ 
 
      if(this.value == 2) { 
 
       $(".mapg").hide(); 
 
      }else{ //use else if , if you want to nothing to happen on select option 
 
       $(".mapg").show(); 
 
      } 
 
      }); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="showmapg" id="showmapg" class="form-control" required> 
 
     <option value="0">Select</option> 
 
     <option id="show" value="1">Yes</option> 
 
     <option id="hide" value="2">No</option> 
 
    </select> 
 

 
    <p class="mapg" style="display: none;">Hello</p>

+0

謝謝它的工作 – user3246727 2014-11-03 08:35:58

+0

歡迎,很高興它幫助。快樂編碼 – bipen 2014-11-03 08:43:44

+1

@ user3246727不要忘記將問題標記爲已接受的問題。 – Regent 2014-11-03 08:46:11

0

你的代碼是:

<script> 
    $(document).ready(function(){ 
     $("#showmapg").change(function(){ 
     if($(this).val()==1){ 
      $('.mapg').show(); 
     } 
     else if($(this).val()==2){ 
      $('.mapg').hide(); 
     } 
     }); 
    }); 
</script> 
+0

它不需要將事件封裝在.ready中 – 2014-11-03 09:52:02

0

Click事件不適用於選項元素。使用.change()事件的選擇顯示/隱藏元素:

$('#showmapg').change(function(){ 
    if($(this).val()=="1") 
    $(".mapg").show(); 
    else 
    $(".mapg").hide(); 
}); 

Working Demo