2010-08-27 92 views
2

我試着切換一些div和它不工作,這裏是JS:切換DIV問題

<script type="text/javascript"> 
     $(function(){ 

      $('#toggle_full').click(function(){   
       $('#full_size').removeClass('toggle'); 
       $('#thumb_list').addClass('toggle'); 
      }); 
     }); 

     $(function(){ 

      $('#toggle_thumb').click(function(){    
       $('#thumb_list').removeClass('toggle'); 
       $('#full_size').addClass('toggle'); 
      }); 
     }); 
    </script> 

這裏是錨:

<div class="toggle_block"> 
     <a href="#" id="toggle_full"><img src="img/full_icon.jpg" alt="#"/></a> 
     <a href="#" id="toggle_thumbs"><img src="img/thumbs_icon.jpg" alt="#"/></a> 
    </div> 

這裏是類:

.toggle { 
display: none; 
} 

現在問題在哪裏?

+1

不工作?有沒有錯誤? – 2010-08-27 19:44:54

+0

螢火蟲沒有錯誤... 鏈接被點擊時鏈接不會觸發代碼。 – Thomas 2010-08-27 19:45:17

+1

你在頁面中包含jQuery嗎?你爲什麼不使用['.show()'](http://api.jquery.com/show/)和['.hide()'](http://api.jquery.com/hide/) )? – 2010-08-27 19:47:10

回答

6

您的ID不符。

在您的HTML中有toggle_thumbs,但在您的代碼中有​​。


如果你正在做的是隱藏和顯示,可以大大簡化你這樣的代碼:

http://jsfiddle.net/xTPU8/2/

$(function() { 
    var $elems = $('#toggle_full').hide() 
     .add('#toggle_thumb').click(function() { 
      $elems.toggle(); 
    }); 
});​ 

編輯:使其更甚至有點高效。

+0

我認爲這是問題 – 2010-08-27 19:50:40

+0

雖然#toggle_full鏈接仍然沒有工作嗎?連接到#的 – 2010-08-27 19:54:35

1

在您的.click()委託中添加return false;以防止瀏覽器導航到'#'(跳轉到頁面頂部)。

您還可以簡化您的JS,但將您的兩個鏈接綁定放在相同位置,並使用hide()show()。最終結果如下:

<script type="text/javascript"> 

    $(function() { 

     $('#toggle_full').click(function() {   
      $('#full_size').show(); 
      $('#thumb_list').hide(); 
      return false; 
     }); 


     $('#toggle_thumb').click(function() {    
      $('#thumb_list').show(); 
      $('#full_size').hide(); 
      return false; 
     }); 

    }); 

</script> 
+0

不應該是jquery的問題 – 2010-08-27 19:54:05