|
|
@@ -85,13 +85,13 @@ function selectImgULContent(item, Id) {
|
|
|
return;
|
|
|
}
|
|
|
if (uLCClsName != undefined && uLCClsName.indexOf("underlineContent") > -1 && uLCClsName.indexOf("noKey") == -1) {
|
|
|
- // 如果为答题点
|
|
|
- item.attr("yaoshi-flag", Id).attr("showflag", "1");
|
|
|
+ // 如果为答题点,ucflag用户作答控制高亮,1表示作答内容存在高亮
|
|
|
+ item.attr("yaoshi-flag", Id).attr("showflag", "1").attr("ucflag","1");
|
|
|
}
|
|
|
// 判断子节点是否存在钥匙标签
|
|
|
if (item.find(".yaoshi").length == 0) {
|
|
|
$.each(item.find(".underlineContent").not(".noKey"), function (iIndex, iItem) {
|
|
|
- $(iItem).attr("yaoshi-flag", Id).attr("showflag", "1");
|
|
|
+ $(iItem).attr("yaoshi-flag", Id).attr("showflag", "1").attr("ucflag", "1");
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
|
@@ -1038,100 +1038,6 @@ function ChangeSpaceStr(DataStr) {
|
|
|
return DataStr;
|
|
|
}
|
|
|
|
|
|
-// 判断是否登记
|
|
|
-function ChangeCheckFlag(DataStr, AnswerStr) {
|
|
|
- var ReStr = "";
|
|
|
- if (AnswerStr == null || AnswerStr == "") {
|
|
|
- return ReStr;
|
|
|
- }
|
|
|
- if (AnswerStr.indexOf(DataStr) > -1) {
|
|
|
- // 直接等价
|
|
|
- //ReStr = AnswerStr.substring(0, (AnswerStr.indexOf(DataStr) + DataStr.length));
|
|
|
- ReStr = DataStr;
|
|
|
- }
|
|
|
- else if (DataStr.indexOf("'") > -1) {
|
|
|
- // 模糊匹配
|
|
|
- var DataArr = DataStr.split("'");
|
|
|
- var pattWStr = "";
|
|
|
- for (var i = 0; i < DataArr.length; i++) {
|
|
|
- if (pattWStr != "") {
|
|
|
- pattWStr += ".*" + DataArr[i];
|
|
|
- }
|
|
|
- else {
|
|
|
- pattWStr += DataArr[i];
|
|
|
- }
|
|
|
- }
|
|
|
- var matchesWArr = AnswerStr.match(new RegExp(pattWStr, "ig"));
|
|
|
- if (matchesWArr != null && matchesWArr.length > 0) {
|
|
|
- var matchesStr = matchesWArr[0];
|
|
|
- ReStr = AnswerStr.substring(0, (AnswerStr.indexOf(matchesStr) + matchesStr.length)); // 获取到的匹配字符串
|
|
|
- // 安卓的惰性匹配不成功
|
|
|
- var StartIndex = ReStr.indexOf(DataArr[DataArr.length - 1], DataStr.indexOf("'"));
|
|
|
- ReStr = ReStr.substring(0, (StartIndex + DataArr[DataArr.length - 1].length)); // 获取最前面的字符串
|
|
|
- }
|
|
|
- }
|
|
|
- return ReStr;
|
|
|
-}
|
|
|
-
|
|
|
-// 划分用户答案处理。待重构,将其划分写入(暂未处理)。AllAnswer所有的子span、mytext用户作答
|
|
|
-function SplitUserAnswer(AllAnswer, mytext) {
|
|
|
- var ReArr = [];
|
|
|
- if (AllAnswer == undefined || AllAnswer == null || AllAnswer.length == 0) {
|
|
|
- return ReArr;
|
|
|
- }
|
|
|
- // 循环判断类型
|
|
|
- for (var i = 0; i < AllAnswer.length; i++) {
|
|
|
- // 先将答案进行切割
|
|
|
- var ReStr = ChangeCheckFlag(AllAnswer[i].Val, mytext);
|
|
|
- if (ReStr != null && ReStr != "" && i != (AllAnswer.length - 1)) {
|
|
|
- var RemoveStr = mytext.substring(0, (mytext.indexOf(ReStr) + ReStr.length)); // 匹配到的整句话
|
|
|
- var PrevReStr = mytext.substring(0, mytext.indexOf(ReStr)); // 匹配到的前半部分(无适配/多余)
|
|
|
- mytext = mytext.replace(RemoveStr, "");
|
|
|
- while (mytext[0] == " ") {
|
|
|
- mytext = mytext.substring(1, mytext.length); // 删除前缀空格
|
|
|
- }
|
|
|
- if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "sentence") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮
|
|
|
- ReStr = PrevReStr + '<img src="' + PicInfo.sentenceIcoUrl + '" class="sentImagcs" data-lstatus="3" data-setstatus="1"><span id="' + AllAnswer[i].ID + '" name="S' + AllAnswer[i].ID + '" flag="sentence" class="sentenceStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>';
|
|
|
- }
|
|
|
- else if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "phrase") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮(加class)
|
|
|
- ReStr = PrevReStr + '<span id="' + AllAnswer[i].ID + '" name="P' + AllAnswer[i].ID + '" flag="phrase" class="phraseStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>';
|
|
|
- }
|
|
|
- else if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "word") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮(加class)
|
|
|
- ReStr = PrevReStr + '<span id="' + AllAnswer[i].ID + '" name="W' + AllAnswer[i].ID + '" flag="word" class="wordStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>';
|
|
|
- }
|
|
|
- else {
|
|
|
- ReStr = PrevReStr + ReStr;
|
|
|
- }
|
|
|
- ReArr.push(ReStr);
|
|
|
- }
|
|
|
- else if (i != (AllAnswer.length - 1)) {
|
|
|
- ReArr.push("");
|
|
|
- }
|
|
|
- else {
|
|
|
- if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "sentence") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮
|
|
|
- mytext = mytextArr[0] + '<img src="' + PicInfo.sentenceIcoUrl + '" class="sentImagcs" data-lstatus="3" data-setstatus="1"><span id="' + AllAnswer[i].ID + '" name="S' + AllAnswer[i].ID + '" flag="sentence" class="sentenceStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>' + mytextArr[1];
|
|
|
- }
|
|
|
- else if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "phrase") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮(加class)
|
|
|
- mytext = mytextArr[0] + '<span id="' + AllAnswer[i].ID + '" name="P' + AllAnswer[i].ID + '" flag="phrase" class="phraseStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>' + mytextArr[1];
|
|
|
- }
|
|
|
- else if (checkStrFunc(AllAnswer[i].ID) && AllAnswer[i].Type == "word") {
|
|
|
- // 检查是否属于高亮,存在需要恢复显示高亮(加class)
|
|
|
- mytext = mytextArr[0] + '<span id="' + AllAnswer[i].ID + '" name="W' + AllAnswer[i].ID + '" flag="word" class="wordStyle" data-setstatus="1" data-lstatus="1" kcode="' + AllAnswer[i].kcode + '" hitcode="' + AllAnswer[i].hitcode + '">' + ReStr + '</span>' + mytextArr[1];
|
|
|
- }
|
|
|
- ReArr.push(mytext);
|
|
|
- }
|
|
|
- }
|
|
|
- return ReArr;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
// 处理节点(使用data-scolor显示的颜色等级卡控,data-setstatus高亮是否处于显示状态,data-lstatus:卡控是否能点击(1单词,2短语,3句型))
|
|
|
//页面加载完,课件 绑定事件(sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是)
|
|
|
@@ -1201,7 +1107,7 @@ function bindEventYS(sWidthVal, isAStatus, isMAStatus) {
|
|
|
if ($(item).hasClass('boxQue')) {
|
|
|
$(item).find('.yaoshi').attr('answer-isky', "2");
|
|
|
if ($(item).find(".underlineContent").length == 0) {
|
|
|
- var AddHtmlStr = '<span class="ULCBGUse" data-select="0" onselectstart="return true"><u class="underlineContent" yaoshi-flag="' + checkId + '" parent-anid="' + headid + '" data-errstatus="0" showflag="1" style="border-bottom: 1px solid rgb(151, 151, 151); text-decoration: none; white-space: pre-wrap;"> </u></span>';
|
|
|
+ var AddHtmlStr = '<span class="ULCBGUse" data-select="0" onselectstart="return true"><u class="underlineContent" yaoshi-flag="' + checkId + '" parent-anid="' + headid + '" data-errstatus="0" showflag="1" style="border-bottom: 1px solid rgb(151, 151, 151); text-decoration: none; white-space: pre-wrap;" ucflag="1"> </u></span>';
|
|
|
$(item).find('.yaoshi').after(AddHtmlStr);
|
|
|
}
|
|
|
}
|
|
|
@@ -1282,7 +1188,7 @@ function bindEventTeaOrignalYS(sWidthVal, isAStatus, isMAStatus) {
|
|
|
if ($(item).hasClass('boxQue')) {
|
|
|
$(item).find('.yaoshi').attr('answer-isky', "2");
|
|
|
if ($(item).find(".underlineContent").length == 0) {
|
|
|
- var AddHtmlStr = '<span class="ULCBGUse" data-select="0" onselectstart="return true"><u class="underlineContent" yaoshi-flag="' + checkId + '" parent-anid="' + headid + '" data-errstatus="0" showflag="1" style="border-bottom: 1px solid rgb(151, 151, 151); text-decoration: none; white-space: pre-wrap;"> </u></span>';
|
|
|
+ var AddHtmlStr = '<span class="ULCBGUse" data-select="0" onselectstart="return true"><u class="underlineContent" yaoshi-flag="' + checkId + '" parent-anid="' + headid + '" data-errstatus="0" showflag="1" style="border-bottom: 1px solid rgb(151, 151, 151); text-decoration: none; white-space: pre-wrap;" ucflag="1"> </u></span>';
|
|
|
$(item).find('.yaoshi').after(AddHtmlStr);
|
|
|
}
|
|
|
}
|
|
|
@@ -1381,7 +1287,8 @@ function getAllAnswer() {
|
|
|
}
|
|
|
TAnswerList.push(info);
|
|
|
});
|
|
|
- return backupAllAnswer(JSON.stringify(TAnswerList), 1);
|
|
|
+ backupAllAnswer(JSON.stringify(TAnswerList), 1);
|
|
|
+ return TAnswerList;
|
|
|
}
|
|
|
|
|
|
//接收学生的作答
|
|
|
@@ -1472,7 +1379,7 @@ function backupAllAnswer(answerJson, statusType) {
|
|
|
}
|
|
|
//提交直接还原作答现场
|
|
|
var mytext = answerList[index].Text;//我的答案
|
|
|
- var CheckFlag = (mytext == "√") ? true : false;
|
|
|
+ var CheckFlag = (mytext.indexOf("√") > -1) ? true : false;
|
|
|
// 恢复多选处理
|
|
|
if (CheckFlag) {
|
|
|
$(".cBoxCls[answer-id='" + answerid + "']").attr("data-status", "1");
|
|
|
@@ -1575,7 +1482,7 @@ function backupAllAnswer(answerJson, statusType) {
|
|
|
}
|
|
|
//提交直接还原作答现场
|
|
|
var mytext = answerList[index].Text;//我的答案
|
|
|
- var CheckFlag = (mytext == "√") ? true : false;
|
|
|
+ var CheckFlag = (mytext.indexOf("√") > -1) ? true : false;
|
|
|
$(item).attr("answer-score", answerList[index].Score); //作答评分
|
|
|
$(item).attr("answer-text", mytext); // 作答内容
|
|
|
$(item).attr("answer-comment", ""); // 作答内容
|
|
|
@@ -1622,33 +1529,81 @@ function backupAllAnswer(answerJson, statusType) {
|
|
|
$(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答
|
|
|
}
|
|
|
else {
|
|
|
- var AllAnswer = []; // 记录所有标准答案
|
|
|
- $.each($(".underlineContent[yaoshi-flag='" + answerid + "']").find("span"), function (tIndex, tItem) {
|
|
|
- var TVal = ChangeSpaceStr($(tItem).text());
|
|
|
- var infos = { ID: $(tItem).attr("id"), Type: $(tItem).attr("flag"), Val: TVal, kcode: $(tItem).attr("kcode"), hitcode: $(tItem).attr("hitcode") };
|
|
|
- AllAnswer.push(infos);
|
|
|
- });
|
|
|
- mytext = ChangeSpaceStr(mytext);
|
|
|
- var ReArr = SplitUserAnswer(AllAnswer, mytext);
|
|
|
- if (ReArr != null && ReArr.length > 0) {
|
|
|
- var NMyText = "";
|
|
|
- for (var i = 0; i < ReArr.length; i++) {
|
|
|
- NMyText += ReArr[i];
|
|
|
- }
|
|
|
- if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0) {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").html(NMyText);
|
|
|
+ var NHtmlStr = ChangeSpaceStr(mytext); // 变动的结构
|
|
|
+ // 判断是否被包含
|
|
|
+ if ($("span[flag='sentence'],span[flag='phrase'],span[flag='word']").find(".underlineContent[yaoshi-flag='" + answerid + "']").length > 0) {
|
|
|
+ var OHtmlVal = $("span[flag='sentence'],span[flag='phrase']").find(".underlineContent[yaoshi-flag='" + answerid + "']").text();
|
|
|
+ OHtmlVal = ChangeSpaceStr(OHtmlVal);
|
|
|
+ // 不需要处理,直接填入即可,判断是否需要显示高亮
|
|
|
+ if (NHtmlStr != OHtmlVal) {
|
|
|
+ // 直接不高亮
|
|
|
+ var WTrue = true;
|
|
|
+ var PHandle = $(".underlineContent[yaoshi-flag='" + answerid + "']");
|
|
|
+ do {
|
|
|
+ var ClsName = PHandle.parent()[0].tagName.toUpperCase();
|
|
|
+ var TFlag = PHandle.parent().attr("flag");
|
|
|
+ if (ClsName == "SPAN" && TFlag != null && (TFlag == "sentence" || TFlag == "phrase")) {
|
|
|
+ PHandle.parent().attr("data-setstatus", "0").attr("data-lstatus", "0")
|
|
|
+ WTrue = false;
|
|
|
+ }
|
|
|
+ PHandle = PHandle.parent()
|
|
|
+ } while (WTrue);
|
|
|
}
|
|
|
else {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").html(NMyText);
|
|
|
+ // 直接高亮
|
|
|
+ var WTrue = true;
|
|
|
+ var PHandle = $(".underlineContent[yaoshi-flag='" + answerid + "']");
|
|
|
+ do {
|
|
|
+ var ClsName = PHandle.parent()[0].tagName.toUpperCase();
|
|
|
+ var TFlag = PHandle.parent().attr("flag");
|
|
|
+ if (ClsName == "SPAN" && TFlag != null && TFlag == "sentence") {
|
|
|
+ PHandle.parent().attr("data-setstatus", "1").attr("data-lstatus", "3");
|
|
|
+ WTrue = false;
|
|
|
+ }
|
|
|
+ else if (ClsName == "SPAN" && TFlag != null && TFlag == "phrase") {
|
|
|
+ PHandle.parent().attr("data-setstatus", "1").attr("data-lstatus", "2");
|
|
|
+ WTrue = false;
|
|
|
+ }
|
|
|
+ PHandle = PHandle.parent()
|
|
|
+ } while (WTrue);
|
|
|
}
|
|
|
}
|
|
|
+ // 判断是否包含
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[flag='sentence'],span[flag='phrase'],span[flag='word']").length > 0) {
|
|
|
+ $.each(TFillData, function (aIndex, aItem) {
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").length > 0) {
|
|
|
+ var TFlag = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("flag");
|
|
|
+ var TIskeyklg = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("iskeyklg");
|
|
|
+ var TEspflag = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("espflag");
|
|
|
+ var TKtype = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("ktype");
|
|
|
+ var TText = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").text();
|
|
|
+ TText = ChangeSpaceStr(TText);
|
|
|
+ var IndexVal = NHtmlStr.toUpperCase().indexOf(TText.toUpperCase());
|
|
|
+ TText = NHtmlStr.substring(IndexVal, IndexVal + TText.length);
|
|
|
+ if (TFlag == "sentence" && IndexVal > -1) {
|
|
|
+ var TNHtmlArr = NHtmlStr.split(TText);
|
|
|
+ var RHtml = TNHtmlArr[0] + ' <span id="' + aItem.HightCode + '" class="sentenceStyle" name="S' + aItem.HightCode + '" flag="sentence" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" data-setstatus="1" data-lstatus="3" onselectstart="return true">' + TText + '</span> ' + TNHtmlArr[1];
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ }
|
|
|
+ else if (TFlag == "phrase" && IndexVal > -1) {
|
|
|
+ var TNHtmlArr = NHtmlStr.split(TText);
|
|
|
+ var RHtml = TNHtmlArr[0] + ' <span id="' + aItem.HightCode + '" class="phraseStyle" name="P' + aItem.HightCode + '" flag="phrase" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" data-setstatus="1" data-lstatus="2" onselectstart="return true">' + TText + '</span> ' + TNHtmlArr[1];
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ }
|
|
|
+ else if (TFlag == "word" && IndexVal > -1) {
|
|
|
+ var TNHtmlArr = NHtmlStr.split(TText);
|
|
|
+ var RHtml = TNHtmlArr[0] + ' <span id="' + aItem.HightCode + '" class="wordStyle" name="W' + aItem.HightCode + '" flag="word" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" data-setstatus="1" data-lstatus="1" onselectstart="return true">' + TText + '</span> ' + TNHtmlArr[1];
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 填入高亮
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0) {
|
|
|
+ $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").html(NHtmlStr);
|
|
|
+ }
|
|
|
else {
|
|
|
- if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0) {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").html(mytext);
|
|
|
- }
|
|
|
- else {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").html(mytext);
|
|
|
- }
|
|
|
+ $(".underlineContent[yaoshi-flag='" + answerid + "']").html(NHtmlStr);
|
|
|
}
|
|
|
// 恢复多选处理
|
|
|
if (CheckFlag) {
|
|
|
@@ -1693,23 +1648,126 @@ function backupAllAnswer(answerJson, statusType) {
|
|
|
$(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答
|
|
|
}
|
|
|
else {
|
|
|
- var AllAnswer = []; // 记录所有标准答案
|
|
|
- $.each($(".underlineContent[yaoshi-flag='" + answerid + "']"), function (tIndex, tItem) {
|
|
|
- $.each($(tItem).find("span"), function (oIndex, oItem) {
|
|
|
- var TVal = ChangeSpaceStr($(oItem).text());
|
|
|
- var infos = { ID: $(oItem).attr("id"), Type: $(oItem).attr("flag"), Val: TVal, kcode: $(oItem).attr("kcode"), hitcode: $(oItem).attr("hitcode") };
|
|
|
- AllAnswer.push(infos);
|
|
|
+ var NHtmlStr = ChangeSpaceStr(mytext); // 变动的结构
|
|
|
+ var NHtmlArr = [];
|
|
|
+ // 判断是否被包含
|
|
|
+ if ($("span[flag='sentence'],span[flag='phrase'],span[flag='word']").find(".underlineContent[yaoshi-flag='" + answerid + "']").length > 0) {
|
|
|
+ var TTNHtmlStr = NHtmlStr; // 用来判断是否相等
|
|
|
+ var TrueFlag = true; // 判断是否全部正确
|
|
|
+ $.each($("span[flag='sentence'],span[flag='phrase'],span[flag='word']").find(".underlineContent[yaoshi-flag='" + answerid + "']"), function (iIndex,iItem) {
|
|
|
+ var TUCText = $(this).text();
|
|
|
+ TUCText = ChangeSpaceStr(TUCText);
|
|
|
+ if (TTNHtmlStr.indexOf(TUCText) == 0) {
|
|
|
+ TTNHtmlStr = TTNHtmlStr.replace(TUCText, ""); // 在用户答案头部
|
|
|
+ NHtmlArr.push(TUCText);
|
|
|
+ }
|
|
|
+ else if (TTNHtmlStr.substring((TTNHtmlStr.length - TUCText.length), TTNHtmlStr.length).toUpperCase() == TUCText.toUpperCase()) {
|
|
|
+ var TWBHtmlStr = TTNHtmlStr.substring((TTNHtmlStr.length - TUCText.length), TTNHtmlStr.length);
|
|
|
+ TTNHtmlStr = TTNHtmlStr.replace(TWBHtmlStr, ""); // 在用户答案在尾部
|
|
|
+ NHtmlArr.push(TWBHtmlStr);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ TrueFlag = false; // 标准答案既不在头部也不再尾部就是错误的,不存在半包含关系跨越式(i've [given) up]
|
|
|
+ }
|
|
|
+ if (!TrueFlag) {
|
|
|
+ // 关闭高亮
|
|
|
+ var WTrue = true;
|
|
|
+ var PHandle = $(this);
|
|
|
+ do {
|
|
|
+ var ClsName = PHandle.parent()[0].tagName.toUpperCase();
|
|
|
+ var TFlag = PHandle.parent().attr("flag");
|
|
|
+ if (ClsName == "SPAN" && TFlag != null && (TFlag == "sentence" || TFlag == "phrase")) {
|
|
|
+ PHandle.parent().attr("data-setstatus", "0").attr("data-lstatus", "0");
|
|
|
+ WTrue = false;
|
|
|
+ }
|
|
|
+ PHandle = PHandle.parent()
|
|
|
+ } while (WTrue);
|
|
|
+ }
|
|
|
});
|
|
|
- });
|
|
|
- mytext = ChangeSpaceStr(mytext);
|
|
|
- var ReArr = SplitUserAnswer(AllAnswer, mytext);
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").html("");
|
|
|
- for (var i = 0; i < ReArr.length; i++) {
|
|
|
- if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0 && i == 0) {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").eq(0).html(ReArr[0]);
|
|
|
+ }
|
|
|
+ // 判断是否包含
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[flag='sentence'],span[flag='phrase'],span[flag='word']").length > 0) {
|
|
|
+ $.each(TFillData, function (aIndex, aItem) {
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").length > 0) {
|
|
|
+ var TFlag = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("flag");
|
|
|
+ var TIskeyklg = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("iskeyklg");
|
|
|
+ var TEspflag = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("espflag");
|
|
|
+ var TKtype = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").attr("ktype");
|
|
|
+ var TText = $(".underlineContent[yaoshi-flag='" + answerid + "']").find("span[id='" + aItem.HightCode + "']").text();
|
|
|
+ TText = ChangeSpaceStr(TText);
|
|
|
+ if (TFlag == "sentence" && NHtmlStr.indexOf(TText) > -1) {
|
|
|
+ var RHtml = '<span id="' + aItem.HightCode + '" name="S' + aItem.HightCode + '" flag="sentence" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" onselectstart="return true"></span>';
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ if (NHtmlArr != null && NHtmlArr.indexOf(TText) > -1) {
|
|
|
+ // 存在的话,同时替换便于一会更新
|
|
|
+ for (var i = 0; i < NHtmlArr.length; i++) {
|
|
|
+ if (NHtmlArr[i] == TText) {
|
|
|
+ NHtmlArr[i] = RHtml;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (TFlag == "phrase" && NHtmlStr.indexOf(TText) > -1) {
|
|
|
+ var RHtml = '<span id="' + aItem.HightCode + '" name="P' + aItem.HightCode + '" flag="phrase" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" onselectstart="return true"></span>';
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ if (NHtmlArr != null && NHtmlArr.indexOf(TText) > -1) {
|
|
|
+ // 存在的话,同时替换便于一会更新
|
|
|
+ for (var i = 0; i < NHtmlArr.length; i++) {
|
|
|
+ if (NHtmlArr[i] == TText) {
|
|
|
+ NHtmlArr[i] = RHtml;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (TFlag == "word" && NHtmlStr.indexOf(TText) > -1) {
|
|
|
+ var RHtml = '<span id="' + aItem.HightCode + '" name="W' + aItem.HightCode + '" flag="word" iskeyklg="' + TIskeyklg + '" espflag="' + TEspflag + '" ktype="' + TKtype + '" kcode="' + aItem.HightCode + "|" + aItem.SourceCode + '" onselectstart="return true"></span>';
|
|
|
+ NHtmlStr = NHtmlStr.replace(TText, RHtml);
|
|
|
+ if (NHtmlArr != null && NHtmlArr.indexOf(TText) > -1) {
|
|
|
+ // 存在的话,同时替换便于一会更新
|
|
|
+ for (var i = 0; i < NHtmlArr.length; i++) {
|
|
|
+ if (NHtmlArr[i] == TText) {
|
|
|
+ NHtmlArr[i] = RHtml;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (NHtmlArr != null && NHtmlArr.length > 0) {
|
|
|
+ // 存在被包含
|
|
|
+ var NAHtmlArr = [];
|
|
|
+ while (NHtmlArr != null && NHtmlArr.length > 0) {
|
|
|
+ if (NAHtmlArr == null || NAHtmlArr.length == 0) {
|
|
|
+ var TNHtmlArr=NHtmlArr.shift();
|
|
|
+ NAHtmlArr = NHtmlStr.split(TNHtmlArr);
|
|
|
+ NAHtmlArr.splice(1, 0, TNHtmlArr)
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ var TNHtmlArr = NHtmlArr.shift();
|
|
|
+ for (var i = 0; i < NAHtmlArr.length; i++) {
|
|
|
+ if (NAHtmlArr[i].indexOf(TNHtmlArr) > -1) {
|
|
|
+ var TNAHtmlArr = NAHtmlArr[i];
|
|
|
+ var TTNAHtmlArr = TNAHtmlArr.split(TNHtmlArr);
|
|
|
+ NAHtmlArr.splice(i, 1, TTNAHtmlArr[0]);
|
|
|
+ NAHtmlArr.splice(i, 0,TNHtmlArr);
|
|
|
+ NAHtmlArr.splice(i, 0,TTNAHtmlArr[1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $.each($(".underlineContent[yaoshi-flag='" + answerid + "']"), function (iIndex, iItem) {
|
|
|
+ $(this).html(NAHtmlArr[iIndex]);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ // 不存在被包含,随便放一个都行
|
|
|
+ $(".underlineContent[yaoshi-flag='" + answerid + "']").html("");
|
|
|
+ if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0){
|
|
|
+ $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").eq(0).html(NHtmlStr);
|
|
|
}
|
|
|
else {
|
|
|
- $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(i).html(ReArr[i]);
|
|
|
+ $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(0).html(NHtmlStr);
|
|
|
}
|
|
|
}
|
|
|
$(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答
|
|
|
@@ -2240,14 +2298,6 @@ function recordAudioClick(myobj, id, url) {
|
|
|
$(".ULCBGUse").attr("data-select", "0");
|
|
|
$(myobj).parent(".underlineContent").parent(".ULCBGUse").attr("data-select", "1");
|
|
|
$(myobj).parent().parent("answer-body").addClass("select-answer");
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- var TStr = $("#STIDStr").text() + "=>" + $(myobj).attr("play-status");
|
|
|
- $("#STIDStr").text(TStr);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
//处理当前按钮的状态
|
|
|
if ($(myobj).attr("play-status") == "0") {
|
|
|
//停止其他作答音频播放
|