這是一個腳本,我發現在這裏,這是我從.live改變。對jQuery的切換按鈕不工作。對(「點擊」)
我有附加類的登錄錨,註銷將打開一個使用jQuery的表單,並將當前錨點的文本和類更改爲註銷。
<li><a href="javascript:void(0)" class="login">Login</a></li>
當點擊它工作一切正常,一切都變了,但是當我在錨再次單擊它不會主動註銷功能。我知道這與jquery或dom需要刷新自己有關,但我不知道如何使其工作?
function onSignOutClicked() {
// Convert the clicked button into a sign-in button
$(this)
.attr('class', 'login')
.attr('title', 'Login')
.text('Sign in');
}
function onSignInClicked() {
// Convert the clicked button into a sign-out button
$(this)
.attr('class', 'logout')
.attr('title', 'Logout')
.text('Sign out');
}
$('.logout').on("click", onSignOutClicked);
$('.login').on("click", onSignInClicked);
我還寫了下面我自己一個人,這是一種替代方法,但這裏的問題是,當它被改變舊的類仍然是工作。
$(".sendLoginForm").click(function(){
$("#loginErr").html("");
$(".sendLoginForm").css({"color":"#ff3019"});
$(".sendLoginForm").spin("small", "#FFF");
$.ajax({
type: "POST",
url: "../_/login.php",
data: $("#loginForm").serialize(),
dataType: "json",
success: function(data){
if (data.err){
$("#loginErr").html(data.err);
}else{
//$(".openLoginForm").closest('li').remove();
//$(".ulNavigator").append('<li><a href="javascript:void(0)" class="logout">Logout</a></li>');
//$('.openLoginForm').toggleClass('.logout')
//$(".openLoginForm").removeClass('.openLoginForm').addClass('logout');
$(".openLoginForm").toggleClass('openLoginForm logout');
$('.login').fadeOut("fast");
$(".success").html(data.success);
$('.success').fadeIn("fast");
$('#loginForm')[0].reset();
setTimeout(function() {
$('.success').fadeOut("fast");
}, 3000);
}
$(".sendLoginForm").spin(false);
$(".sendLoginForm").css({"color":"#FFF"});
}
});
return false;
});
$(document).on("click", ".logout", function(){
$.ajax({
type: "POST",
url: "../_/logout.php",
data: {logout : "kick"},
dataType: "json",
success: function(data){
if (data.success){
$(".success").html(data.success);
$(".success").fadeIn("fast");
setTimeout(function() {
$('.success').fadeOut("fast");
}, 3000);
}
}
});
});
對乙醚方法的任何幫助將不勝感激,謝謝。
而不是'javascript:void(0)',爲什麼不簡單地在函數中使用'preventDefault()'? – Sparky 2013-02-14 19:28:33
謝謝Sparky,不知道會做同樣的事情,我確實使用了表單子上的preventDefault,我需要學習更多的哈哈。 Kodos – SmileyWar 2013-02-14 19:37:25
這不完全相同,但是在點擊處理程序中使用'href =「#」'和適當的'preventDefault()'是一個更好的實現,IMO。 '.click(function(e){e.preventDefault(); ...' – Sparky 2013-02-14 19:38:52