345 lines
11 KiB
JavaScript
345 lines
11 KiB
JavaScript
$(function () {
|
|
selectedInit();
|
|
subjectEvent();
|
|
setButtonEvent();
|
|
_quesSelectEvent();
|
|
});
|
|
|
|
|
|
//各种选择按钮的事件
|
|
function subjectEvent() {
|
|
$(".selectItem a").click(function () {
|
|
var attr = $(this).attr("attr");
|
|
var val = $(this).attr(attr);
|
|
//要清除的参数
|
|
var clear = $(this).attr("clear");
|
|
var url = buildUrl(attr, val, clear);
|
|
window.document.location.href = url;
|
|
return false;
|
|
});
|
|
}
|
|
//初始化
|
|
function selectedInit() {
|
|
var strs = GetRequest();
|
|
if (strs.length < 1) {
|
|
$("#SelectedBar").hide();
|
|
} else {
|
|
//参数数组
|
|
var strs = GetRequest();
|
|
$("#Selected").html("");
|
|
for (var i = 0; i < strs.length; i++) {
|
|
var item = $(".selectItem a[" + strs[i][0] + "=" + strs[i][1] + "]");
|
|
if (item.size() < 1) continue;
|
|
//主题,如专业、类型的文字信息
|
|
var theme = item.parent().parent().prev().text();
|
|
var txt = item.text();
|
|
var clear = item.attr("clear");
|
|
var tm = "<div class=\"selectedItem\" clear=\"" + clear + "\">";
|
|
tm += "<div class='name'>" + theme + txt + "</div><div class='close' attr='" + strs[i][0] + "'> </div>";
|
|
tm += "</div> ";
|
|
$("#Selected").append(tm);
|
|
}
|
|
//选中的专业在鼠标经过时
|
|
$("#Selected .selectedItem").hover(function () {
|
|
$(this).addClass("selectedItemOver");
|
|
$(this).find(".close").addClass("closeOver");
|
|
}, function () {
|
|
$(this).removeClass("selectedItemOver");
|
|
$(this).find(".close").removeClass("closeOver");
|
|
});
|
|
$("#Selected .close").click(function () {
|
|
var clear = $(this).parent().attr("clear");
|
|
var url = buildUrl($(this).attr("attr"), null, clear);
|
|
window.document.location.href = url;
|
|
});
|
|
}
|
|
}
|
|
//生成地址
|
|
function buildUrl(attr, val, clear) {
|
|
//当前页面的上级路径,因为子页面没有写路径,默认与本页面同路径
|
|
var url = String(window.document.location.href);
|
|
url = url.replace(/#/ig, "");
|
|
if (url.indexOf("?") > -1) url = url.substring(0, url.lastIndexOf("?"));
|
|
//参数数组
|
|
var strs = GetRequest();
|
|
var para = new Array();
|
|
var isHave = false;
|
|
for (var i = 0; i < strs.length; i++) {
|
|
if (strs[i][0] == attr) {
|
|
strs[i][1] = val;
|
|
isHave = true;
|
|
}
|
|
if (!(strs[i][0] == attr && val == null)) {
|
|
para.push(strs[i]);
|
|
}
|
|
}
|
|
if (!isHave && val != null) para.push(new Array(attr, val));
|
|
if (para.length < 1) return url;
|
|
url += "?";
|
|
//要清除的数据
|
|
var clr = clear == null ? new Array() : clear.split(",");
|
|
for (var i = 0; i < para.length; i++) {
|
|
var tmIsHave = false;
|
|
for (var j = 0; j < clr.length; j++) {
|
|
if (para[i][0] == clr[j]) {
|
|
tmIsHave = true;
|
|
break;
|
|
}
|
|
}
|
|
if (tmIsHave) continue;
|
|
url += para[i][0] + "=" + para[i][1];
|
|
if (i < para.length - 1) url += "&";
|
|
}
|
|
if (url.substring(url.length - 1) == "?") url = url.substring(0, url.length - 1);
|
|
if (url.substring(url.length - 1) == "&") url = url.substring(0, url.length - 1);
|
|
return url;
|
|
}
|
|
//获取参数
|
|
function GetRequest() {
|
|
var url = location.search; //获取url中"?"符后的字串
|
|
var theRequest = new Array();
|
|
if (url.indexOf("?") != -1) {
|
|
var str = url.substr(1);
|
|
strs = str.split("&");
|
|
for (var i = 0; i < strs.length; i++) {
|
|
theRequest.push(new Array(strs[i].split("=")[0], strs[i].split("=")[1]));
|
|
}
|
|
}
|
|
return theRequest;
|
|
}
|
|
/*
|
|
|
|
试题控制区域,例如上一题,下一题等
|
|
|
|
*/
|
|
//显示某道题
|
|
//index:当前试题的索引号
|
|
//action:向前,还是向后;正数向后,负数向前
|
|
function ShowQues(index, action) {
|
|
var ques = $("#quesArea .quesItem");
|
|
//新索引
|
|
var newIndex = index + action;
|
|
if (newIndex < 1) {
|
|
alert("当前试题范围前一题不存在。");
|
|
return;
|
|
}
|
|
if (newIndex > ques.size()) {
|
|
alert("当前试题范围后一题不存在。");
|
|
return;
|
|
}
|
|
//所有的试题隐藏
|
|
ques.hide();
|
|
var dd = $("#quesArea .quesItem[index=" + newIndex + "]");
|
|
if (dd.size() > 0) {
|
|
dd.show();
|
|
var numbox = $("#indexNum");
|
|
numbox.attr("index", newIndex);
|
|
numbox.html(Number(numbox.attr("initIndex")) + newIndex - 1);
|
|
}
|
|
}
|
|
//设置控制区的按钮事件
|
|
function setButtonEvent() {
|
|
$("#quesArea .quesItem:first").show();
|
|
//上一题
|
|
$("#btnPrev").click(function () {
|
|
var index = Number($("#quesArea .quesItem:visible").attr("index"));
|
|
ShowQues(index, -1);
|
|
});
|
|
//下一题
|
|
$("#btnNext").click(function () {
|
|
var index = Number($("#quesArea .quesItem:visible").attr("index"));
|
|
ShowQues(index, 1);
|
|
});
|
|
//显示答案
|
|
$("#btnAnswer").click(function () {
|
|
var quesid = Number($("#quesArea .quesItem:visible").attr("qid"));
|
|
var type = Number($("#quesArea .quesItem:visible").attr("type"));
|
|
var file = "QuestionAnswer.ashx?id=" + quesid;
|
|
if (type == 4)
|
|
new top.PageBox("参考答案", file, 800, 600).Open();
|
|
else
|
|
new top.PageBox("参考答案", file, 400, 300).Open();
|
|
return false;
|
|
});
|
|
//知识点讲解
|
|
$("#btnExplan").click(function () {
|
|
var quesid = Number($("#quesArea .quesItem:visible").attr("qid"));
|
|
var file = "QuesExplain.ashx?id=" + quesid;
|
|
new top.PageBox("试题解析", file, 800, 600).Open();
|
|
return false;
|
|
});
|
|
//学习资料
|
|
$("#btnKnl").click(function () {
|
|
var quesid = Number($("#quesArea .quesItem:visible").attr("qid"));
|
|
var file = "QuesKnl.ashx?id=" + quesid;
|
|
new top.PageBox("学习资料", file, 800, 600).Open();
|
|
return false;
|
|
});
|
|
}
|
|
/*
|
|
|
|
试题的相关操作
|
|
|
|
*/
|
|
//试题的选择事件
|
|
function _quesSelectEvent() {
|
|
$(".quesItem").each(function () {
|
|
var type = Number($(this).attr("type"));
|
|
//单选题
|
|
if (type == 1) quesEventType1($(this));
|
|
if (type == 2) quesEventType2($(this));
|
|
if (type == 3) quesEventType3($(this));
|
|
});
|
|
}
|
|
//单选题的选择
|
|
function quesEventType1(ansItem) {
|
|
ansItem.find(".answer").click(function () {
|
|
var isSel = $(this).attr("isSel") == "true" ? true : false;
|
|
if (isSel) {
|
|
$(this).attr("isSel", false);
|
|
$(this).removeClass("answerSel");
|
|
$(this).find("span.type").html("󰃆");
|
|
} else {
|
|
//如要没有选中
|
|
$(this).parent().find(".answer").attr("isSel", false);
|
|
$(this).parent().find(".answer").removeClass("answerSel");
|
|
$(this).parent().find("span.type").html("󰃆");
|
|
$(this).attr("isSel", true);
|
|
$(this).addClass("answerSel");
|
|
$(this).find("span.type").html("");
|
|
}
|
|
//是否答对
|
|
var ques = $(".quesItem[index=" + $("#indexNum").attr("index") + "]");
|
|
_decide1(ques);
|
|
});
|
|
}
|
|
//多选题的选择
|
|
function quesEventType2(ansItem) {
|
|
ansItem.find(".answer").click(function () {
|
|
var isSel = $(this).attr("isSel") == "true" ? true : false;
|
|
if (isSel) {
|
|
$(this).attr("isSel", false);
|
|
$(this).removeClass("answerSel");
|
|
$(this).find("span.type").html("");
|
|
} else {
|
|
$(this).attr("isSel", true);
|
|
$(this).addClass("answerSel");
|
|
$(this).find("span.type").html("");
|
|
}
|
|
//是否答对
|
|
var ques = $(".quesItem[index=" + $("#indexNum").attr("index") + "]");
|
|
_decide2(ques);
|
|
|
|
});
|
|
}
|
|
//判断题的选择
|
|
function quesEventType3(ansItem) {
|
|
ansItem.find(".answer").click(function () {
|
|
var isSel = $(this).attr("isSel") == "true" ? true : false;
|
|
if (isSel) {
|
|
$(this).attr("isSel", false);
|
|
$(this).removeClass("answerSel");
|
|
$(this).find("span.type").html("");
|
|
} else {
|
|
//如要没有选中
|
|
$(this).parent().find(".answer").attr("isSel", false);
|
|
$(this).parent().find(".answer").removeClass("answerSel");
|
|
$(this).parent().find("span.type").html("");
|
|
$(this).attr("isSel", true);
|
|
$(this).addClass("answerSel");
|
|
$(this).find("span.type").html("");
|
|
}
|
|
//是否答对
|
|
var ques = $(".quesItem[index=" + $("#indexNum").attr("index") + "]");
|
|
_decide3(ques);
|
|
});
|
|
}
|
|
//显示答题的正确与否状态
|
|
function showResult(ques, isCorrect) {
|
|
var box = ques;
|
|
//var box=ques.find(".quesAnswerBox");
|
|
if (isCorrect == null) {
|
|
box.removeClass("error");
|
|
box.removeClass("correct");
|
|
return;
|
|
}
|
|
if (isCorrect) {
|
|
box.addClass("correct");
|
|
box.removeClass("error");
|
|
} else {
|
|
box.removeClass("correct");
|
|
box.addClass("error");
|
|
//增加错题
|
|
//$.get("AddQues.ashx",{"qid":ques.attr("qid")},function(){
|
|
//});
|
|
}
|
|
//正确的数量
|
|
var succNum = $(".correct").size();
|
|
$("#succCount").html(succNum);
|
|
//正确率
|
|
var per = Number(succNum) / $(".quesItem").size();
|
|
per = Math.round(per * 10000) / 100;
|
|
$("#perCount").html(per);
|
|
}
|
|
//单选题判断
|
|
function _decide1(ques) {
|
|
var selitem = ques.find(".quesAnswerBox .answer[issel=true]");
|
|
if (selitem.size() < 1) {
|
|
//alert("您还没有答题!");
|
|
var msg = new MsgBox("提示", "您还没有答题!", 90, 40, "msg");
|
|
msg.Open();
|
|
showResult(ques, null);
|
|
return;
|
|
}
|
|
showResult(ques, selitem.attr("correct").toLowerCase() == "true");
|
|
}
|
|
//多选题判断
|
|
function _decide2(ques) {
|
|
var selitem = ques.find(".quesAnswerBox .answer[issel=true]");
|
|
if (selitem.size() < 1) {
|
|
return;
|
|
}
|
|
var isCorrect = true;
|
|
var corrItem = ques.find(".quesAnswerBox .answer[correct=True]");
|
|
corrItem.each(function () {
|
|
if ($(this).attr("issel") != "true") isCorrect = false;
|
|
});
|
|
showResult(ques, isCorrect && corrItem.size() == selitem.size());
|
|
}
|
|
//判断题判断
|
|
function _decide3(ques) {
|
|
var selitem = ques.find(".quesAnswerBox .answer[issel=true]");
|
|
if (selitem.size() < 1) {
|
|
return;
|
|
}
|
|
showResult(ques, selitem.attr("correct").toLowerCase() == "true");
|
|
}
|
|
//简答题判断
|
|
function _decide4(ques) {
|
|
new MsgBox("提示", "简答题不自动判题!无须提交。", 90, 40, "msg").Open();
|
|
}
|
|
//填空题判断
|
|
function _decide5(ques) {
|
|
var selitem = ques.find(".quesAnswerBox .answer");
|
|
//是否答题
|
|
var iswrite = true;
|
|
selitem.each(function () {
|
|
if ($.trim($(this).find("input[type=text]").val()) != "") iswrite = false;
|
|
});
|
|
if (iswrite) {
|
|
new MsgBox("提示", "您还没有答题!", 90, 40, "msg").Open();
|
|
showResult(ques, null);
|
|
return;
|
|
}
|
|
//是否正确
|
|
var isCorrect = true;
|
|
selitem.each(function () {
|
|
var correct = $(this).attr("correct").toLowerCase();
|
|
var answer = $.trim($(this).find("input[type=text]").val()).toLowerCase();
|
|
if (correct != answer) iswrite = false;
|
|
});
|
|
showResult(ques, isCorrect);
|
|
}
|
|
|
|
|