Reputation: 189
My toggles work both fine, but only the first time. Whats wrong with it?
$(".add-to-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(".is-on-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});
Upvotes: 2
Views: 246
Reputation: 136
Since you are only initializing the .click listener once, using that .click code, the second time you click it won't work.
Because the code only bind the listener on the class once.
If you're going to have a listener on a dynamically added element, use it like this
$(document).on('click', '.add-to-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(document).on('click', '.is-on-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});
Upvotes: 0
Reputation: 4638
try this code:
var selector = 'button';
$(selector).on('click', function(){
$(this).toggleClass('active');
});
.active{color:green;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="add-to-list">Hi</button>
<button class="is-on-list">there</button>
Upvotes: 1