Reputation: 868
<div class="form-group">
<button type="submit"id="form_submit">
<span class="glyphicon glyphicon-user"></span> Sign Up
</button>
<a style="cursor:pointer;" class="click_login">Already signed up! Then Login</a>
</div>
jquery:
$(document).ready(function(){
// form click login
$(".click_login").on("click",function(){
$(this).html("New Member! Then Sign Up");
$(this).removeClass('click_login').addClass('click_signup');
alert($(this).attr("class"));
$("#form_submit").html('<span class="glyphicon glyphicon-log-in"></span> Login');
});
// form click signup
$(".click_signup").on("click",function(){
$(this).html("Already signed up! Then Login");
$(this).removeClass('click_signup').addClass('click_login');
$("#form_submit").html('<span class="glyphicon glyphicon-user"></span> signup');
});
});
When I click on a link, it changes to Login button. But once it is updated via jquery, When I click on a link again, it doesn't change to new class to get Sign up button. New class is getting updated via jquery,but on click
function doesn't trigger new class selector of the same element.
Upvotes: 0
Views: 52
Reputation: 2581
Try
// form click signup
$(document).on("click",".click_signup",function(){
$(this).html("Already signed up! Then Login");
$(this).removeClass('click_signup').addClass('click_login');
$("#form_submit").html('<span class="glyphicon glyphicon-user"></span> signup');
});
Upvotes: 1
Reputation: 5049
USe $(document).on("click") event for dynamically added content:
$(document).on("click",".click_login",function(){
$(this).html("New Member! Then Sign Up");
$(this).removeClass('click_login').addClass('click_signup');
alert($(this).attr("class"));
$("#form_submit").html('<span class="glyphicon glyphicon-log-in"></span> Login');
});
// form click signup
$(document).on("click",".click_signup",function(){
$(this).html("Already signed up! Then Login");
$(this).removeClass('click_signup').addClass('click_login');
$("#form_submit").html('<span class="glyphicon glyphicon-user"></span> signup');
});
Upvotes: 2