학위를 위해 프로젝트를하고 있습니다. 이 프로젝트는 남아공의 케이프 타운에있는 학교에서 시행 될 예정인 그룹 프로젝트입니다. GitHub에서 전체 자식 조직을 확인할 수 있습니다 (Jewel Systems).jQuery insert before 또는 before 메서드가 작동하지 않습니다.
이 프로젝트는 기본적으로 교사가 수업 예약을위한 기기 예약이나 학생에게 기기 대여를 원할 때처럼 기기 대여를 추적하는 시스템입니다. 선생님이 대여 할 장치를 너무 많이 선택하면 오류 메시지가 표시되어 사용자에게 알려줍니다.
프로젝트의 프런트 엔드에서 작업 중이므로 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 example here] (https://jsfiddle.net/42ukk4mv/)를 참조하십시오. $가없는 msg도 작동합니다. – ainasiart
그리고 좋은 방법은 sessionStorage는'sessionStorage.setItem ('key', 'value')'입니다. – ainasiart
@ainasiart 왜 더 낫습니까? 예, 다른 파일에서 오류를 발견했습니다. 아약스를 중지 한 후에 오류 메시지가 제거되었습니다. –