2012-09-05 49 views
1

我有一個代碼在一個按鈕的onclick的一個按鈕

onClick="$('img').removeClass('highlighted');$(this).addClass('highlighted') 

以及它將使該按鈕被突出顯示,但有可能在那裏添加檢查語句,看看是否按鈕已經突出顯示並dehighlight它而不是讓它保持突出顯示?

+0

感謝所有的及時答覆,所有的解決方案的工作,但我可能會選擇在一個接近我有什麼,一個襯墊,而不是添加功能。 – jonleech

回答

1

你可以使用jQuery的方法做到這一點:hasClass

onClick="if($('img').hasClass('highlighted')) {$('img').removeClass('highlighted');} else {$(this).addClass('highlighted')} 
+0

請注意,您的意思是「如果img沒有突出顯示的類,則刪除突出顯示的類」,這沒有意義。可能只是一個錯字。 – h2ooooooo

+0

@ h2ooooooo:當然,愚蠢的我...固定並感謝 – Constantinius

2

你應該在JavaScript中使用.click代替,因爲它更容易閱讀和事後管理:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#button").click(function() { 
      if ($(this).hasClass('highlighted')) { 
       $('img').addClass('highlighted'); 
       $(this).removeClass('highlighted'); 
      } else { 
       $('img').removeClass('highlighted'); 
       $(this).addClass('highlighted'); 
      } 
     } 
    }); 
</script> 

您還可以使用toggleClass

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#button").click(function() { 
      $('img').toggleClass('highlighted'); 
      $(this).toggleClass('highlighted'); 
     } 
    }); 
</script> 
+0

由 如果($($ this).hasClass('highlight')){ $('img')。removeClass('highlight' ); $(this).addClass('highlight'); } 爲什麼需要$(this).addClass('highlight');當我想刪除它? – jonleech

+0

這是我的一個錯字,現在已經修復以備將來使用。很高興你找到你的答案。 – h2ooooooo

1

該代碼看起來很瘋狂。你在使用jQuery嗎?如果是這樣,請在點擊處理程序中進行檢查。

$("img").on("click", function(event){ 

    var $this = $(this); 

    if($this.hasClass("highlighted")) { 
     $this.removeClass("highlighted") 
    } else { 
     $this.addClass("highlighted") 
    } 

}); 

這有幫助嗎?

1

很簡單老闆:使用hasClass()

$('img').click(function(){ 

if($(this).hasClass('highlighted')){ 
    $('img').removeClass('highlighted'); 
} 
else{ 
$(this).addClass('highlighted') 
} 


}); 
相關問題