2012-09-05 52 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') 
} 


}); 
相关问题