I am studying jquery, I want make a effection as: first click, slider down the div#ccc and change the link class to 'aaa'; click again, slider up the div#ccc and change the link class back to 'bbb'. now slider down can work, but removeClass, addClass not work. how to modify so that two effection work perfect? thanks.
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$("#click").click(function() {
$("#ccc").slideDown('fast').show();
$(this).removeClass('bbb').addClass('aaa');
});
$("#click").click(function() {
$("#ccc").slideDown('fast').hide();
$(this).removeClass('aaa').addClass('bbb');
});
});
</script>
<style>
#ccc{display:none;}
</style>
<div id="click" class="bbb">click</div>
<div id="ccc">hello world</div>
Use toggle instead of show/hide and toggleClass instead of add/remove, and merge into a single click event. Something like this (untested and probably doesn't work):
$("#click").click(function() {
$("#ccc").toggle().animate();
$(this).toggleClass('bbb aaa');
});
You need to use a single toggle event. You are setting the click event twice and that won't work.
jsfiddle
You are looking for the toggle event, it appears.
$(document).ready(function () {
$('div#click').toggle(
function () {
$('div#ccc').slideDown('fast').show();
$('div#click').removeClass('bbb').addClass('aaa');
},
function () {
$('div#ccc').slideDown('fast').hide();
$('div#click').removeClass('aaa').addClass('bbb');
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With