我正在爲我的學位做一個項目。這個項目是一個集體項目,旨在在南非開普敦的一所學校實施。您可以在GitHub上檢查整個git組織,名爲Jewel Systems。jQuery insertBefore或之前的方法不工作
該項目基本上是一個跟蹤設備租金的系統,例如老師爲一個班級預訂設備,或者學生想要借用設備。如果教師選擇出租太多設備,則會顯示一條錯誤消息告訴用戶。
我很忙,在項目的前端,我不能讓2 jQuery方法工作。它之前有效,一個月沒有觸及項目,錯誤信息剛剛停止顯示。我檢查了Firebug上的控制檯,它顯示了服務器發出的錯誤消息。
因此,可以說,我在登錄屏幕,登錄屏幕看起來是這樣的: Login Screen http://i64.tinypic.com/24det55.png
爲login.js
腳本代碼:
$(document).ready(function() {
if (typeof sessionStorage.email != "undefined") {
window.location = "/user";
} else {
// $('.content .loading').fadeIn(1000);
// $('.content .loading').css('display', 'block');
// $('.content .loading').delay(2000).fadeOut(1000);
// $('.content p.greeting').delay(5000).fadeIn(1000);
// $('.content p.greeting').delay(2000).fadeOut(1000);
// $('.content .panel').delay(10000).fadeIn(1000);
// $('.content .panel').fadeIn(1000);
}
$('.content .panel').fadeIn(1000);
$('form.loginForm').submit(function(event) {
var data = $(this).serializeArray();
$.ajax({
url: domain + 'testauth',
type: 'POST',
data: JSON.stringify({"username": data[0].value, "password" : data[1].value}),
contentType: 'application/json',
success: function(result, status, xhr) {
var user_data = result.data;
if (typeof(Storage) !== "undefined") {
sessionStorage.user_id = user_data.id;
sessionStorage.email = user_data.email;
sessionStorage.fname = user_data.fname;
sessionStorage.lname = user_data.lname;
sessionStorage.user_type = user_data.type;
sessionStorage.created_at = user_data.created_at;
$.get(domain + "user/" + user_data.id, function(data) {
data = data.data;
if (data.loaned[0] !== undefined) {
if (data.loaned.length > 1) {
sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id + "#" + data.loaned[1].type + ":" + data.loaned[1].id;
} else if (data.loaned.length === 1) {
sessionStorage.device_loaned = data.loaned[0].type + ":" + data.loaned[0].id;
}
} else {
sessionStorage.device_loaned = null;
}
if (data.privileges.length > 1) {
sessionStorage.perm = data.privileges[0].type + "#" + data.privileges[1].type;
} else if (data.loaned.length === 1) {
sessionStorage.perm = data.privileges[0].type;
}
window.location = "/user";
});
} else {
$('.error-message').remove();
var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> Your browser doesn't support local storage, please update your browser or download <a href='https://www.google.com/chrome/'>Google Chrome</a>/<a href='https://www.mozilla.org/en-US/firefox/new/'>Mozilla Firefox</a>.");
$(msg).insertBefore('.panel');
event.preventDefault();
}
},
error: function(xhr, status, error) {
try {
var response = JSON.parse(xhr.responseText);
$('.error-message').remove();
var msg = $('<div class="alert alert-danger error-message"></div>').html("<strong>Oh snap!</strong> The email/ID or password entered is incorrect, please try again.");
// $(msg).insertBefore('.panel');
$('.panel').before(msg);
} catch (e) {
console.log(e);
}
},
});
event.preventDefault();
});
});
我認爲,這不僅是該錯誤消息不起作用。我起初以爲這個問題可能是我的筆記本電腦,因爲它一開始出現了一些問題,然後我在另一臺機器上測試了這個系統,但是它做了同樣的事情,所以我想這可能是我的代碼出錯了。
我的網站託管在鏈接服務器(該回購可在Jewel Systems組織找到,您需要安裝gradle
才能運行此服務器)。
你的代碼工作,但也許問題是其他地方,請參閱[jsfiddle示例這裏](https://jsfiddle.net/42ukk4mv/),和味精沒有$也工作 – ainasiart
並設置好的好方法sessionStorage是'sessionStorage.setItem('key','value')'。 – ainasiart
@ainasiart爲什麼更好?是的,我發現在另一個文件中的錯誤。我在ajax停止後刪除了錯誤消息。 –