//播放音频图片地址(安卓) var PicInfo1 = { answerPointImgUrl: "file:///android_asset/js/update-answer.png", yaoshiShowImgUrl: "file:///android_asset/js/yaoshi-show.png", yaoshiHideImgUrl: "file:///android_asset/js/yaoshi-hide.png", recordPlayImgUrl: "file:///android_asset/js/play.png", recordPauseImgUrl: "file:///android_asset/js/pause.png", audioPlayImgUrl: "file:///android_asset/js/dynaiselaba.gif", audioPauseImgUrl: "file:///android_asset/js/dynaiselaba.png", sentenceIcoUrl: "file:///android_asset/js/sentenceIco.png" } //播放音频图片地址(iOS) var PicInfo = { yaoshiShowImgUrl: "yaoshi-show.png", yaoshiHideImgUrl: "yaoshi-hide.png", answerPointImgUrl: "update-answer.png", recordPlayImgUrl: "play.png", recordPauseImgUrl: "pause.png", audioPlayImgUrl: "dynaiselaba.gif", audioPauseImgUrl: "dynaiselaba.png", speechAnswerImgUrl: "title_speech.png", videoPlayImgUrl: "title_video.png", KouYuTagImgUrl: "KY.png", sentenceIcoUrl: "sentenceIco.png" } //本地调用用的资源 var PicInfo1 = { answerPointImgUrl: "../Images/update-answer.png", yaoshiShowImgUrl: "../Images/yaoshi-show.png", yaoshiHideImgUrl: "../Images/yaoshi-hide.png", KouYuTagImgUrl: "../Images/KY.png", recordPlayImgUrl: "../Images/play.png", recordPauseImgUrl: "../Images/pause.png", audioPlayImgUrl: "../Images/dynaiselaba.gif", audioPauseImgUrl: "../Images/dynaiselaba.png", sentenceIcoUrl: "../Images/sentenceIco.png" } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 公用方法 // 检测安卓和ios var cTTypeFunc = 2; // 安卓为1,iOS为2 //var cTTypeFunc = function () { // var u = navigator.userAgent; // //var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 // //var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 // if (u.indexOf('Android') > -1 || u.indexOf('Adr') > -1) { // return 1; // } // else { // return 2; // } //}(); // 删除叼毛题库原先附加无用属性 function dealUnderLineFunc() { // 打理干净underline $.each($('.underline').not(".underlineContent"), function () { if ($(this).find(".underlineContent").length > 0) { var ClsNmae = $(this).attr("class"); ClsNmae = ClsNmae.replace("underline", "").replace(" ", " "); $(this).attr("class", ClsNmae); } else { $(this).remove(); // 删除全部 } }); // 删除全部underlineContent的颜色 $(".underlineContent").css("color", ""); // 删除要是的display $.each($('.yaoshi'), function () { var StyleStr = $(this).attr("style"); if (StyleStr == undefined || StyleStr == null || StyleStr == "") { return; } var StyleArr = StyleStr.split(";"); StyleStr = ""; for (var i = 0; i < StyleArr.length; i++) { if (StyleArr[i].indexOf("display") == -1 && StyleStr == "") { StyleStr += StyleArr[i]; } else if (StyleArr[i].indexOf("display") == -1 && StyleStr != "") { StyleStr += ";" + StyleArr[i]; } } $(this).attr("style", StyleStr); }); } // 查找该img下的underlinecontent function selectImgULContent(item, Id) { var uLCClsName = item.attr("class"); var nItem = item.next(); var pItem = item.parent(); if (uLCClsName != undefined && uLCClsName.indexOf("yaoshi") > -1) { // 到达下一个钥匙的位置了,终止 return; } if (uLCClsName != undefined && uLCClsName.indexOf("underlineContent") > -1 && uLCClsName.indexOf("noKey") == -1) { // 如果为答题点,ucflag用户作答控制高亮,1表示作答内容存在高亮 item.attr("yaoshi-flag", Id).attr("parent-anid", 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("parent-anid", Id).attr("showflag", "1").attr("ucflag", "1"); }); } else { return selectImgULContent(item.children(":first"), Id); // 获取第一个子节点 } if (nItem.length > 0) { return selectImgULContent(nItem, Id); } else { if (pItem[0] == undefined || pItem[0].tagName.toUpperCase() == "BODY") { // 到达网页根节点,终止 return; } else { return selectImgULContent(pItem.next(), Id); } } } // 点击事件样式渲染 var ClickRecFunc = function (pID) { if (pID == undefined || pID == null || pID == "") { return; } $(".answer-body").removeClass("select-answer"); var jqStr = ".answer-body[parent-anid='" + pID + "']"; $(jqStr).addClass("select-answer"); if ($(jqStr).attr("data-astatus") == "1") { var curObj = new Object(); curObj.Id = $(jqStr).attr("answer-id");//答题点ID curObj.pId = $(jqStr).attr("parent-anid");//答题点ID curObj.IsKY = $(jqStr).attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题 curObj.AnsText = $(jqStr).attr("answer-anstext");//参考答案 onClickAnswerPoint(JSON.stringify(curObj)); } }; // #region 表格处理 var pressTableFlag = false; // 处理表格内的图片宽度 var DealImageWFunc = function (Item, WidthVal) { var pattWStr = new RegExp(/width\s?:\s?[0-9]+%;/ig); var pattWStr2 = new RegExp(/width\s?=\s?["|'|0-9]+%/ig); $.each($(Item).find("img").not(".nextpic"), function (index, iItem) { var HtmlStr = $(iItem).prop("outerHTML"); var matchesWArr = HtmlStr.match(pattWStr); if (matchesWArr != null && matchesWArr.length > 0) { if (matchesWArr[0].indexOf("%") > -1) { var TWidthVal = parseFloat(matchesWArr[0].replace(/\s/g, "").replace("width:", "")); $(this).css("width", (WidthVal * TWidthVal / 100) + "px"); } } var matchesWArr = HtmlStr.match(pattWStr2); if (matchesWArr != null && matchesWArr.length > 0) { if (matchesWArr[0].indexOf("%") > -1) { var TWidthVal = parseFloat(matchesWArr[0].replace(/\s/g, "").replace("\"", "").replace("width=", "")); $(this).css("width", (WidthVal * TWidthVal / 100) + "px"); } } }); }; // 获取最大字符长度的字符串(起决定宽度的字符串/将字符去除HTML标签) var removeHtmlFunc = function (htmlStr, TdWidthVal) { var ReArr = { TextStr: "", WidthVal: 0, ImgFlag: false, }; // 清除非长度标签 var pattStr = new RegExp(/<(img){1}.*?>/ig); var matchesArr = htmlStr.match(pattStr); if (matchesArr != null && (matchesArr != undefined && matchesArr.length > 0)) { for (var i = 0; i < matchesArr.length; i++) { if (matchesArr[i].indexOf("nextpic") == -1) { var TempWidthVal = 0; var pattWStr = new RegExp(/width\s?:\s?[0-9|p|x|%]+;/ig); var matchesWArr = matchesArr[i].match(pattWStr); if (matchesWArr != null && matchesWArr.length > 0) { if (matchesWArr[0].indexOf("%") > -1) { var TWidthVal = parseFloat(matchesWArr[0].replace(/\s/g, "").replace("width:", "")); TempWidthVal += TdWidthVal * TWidthVal; } else { TempWidthVal += parseFloat(matchesWArr[0].replace(/\s/g, "").replace("width:", "").replace("px", "")); } } pattWStr = new RegExp(/width\s?=\s?["|'|0-9|p|x|%]+/ig); matchesWArr = matchesArr[i].match(pattWStr); if (matchesWArr != null && matchesWArr.length > 0) { if (matchesWArr[0].indexOf("%") > -1) { var TWidthVal = parseFloat(matchesWArr[0].replace(/\s/g, "").replace("width=", "")); TempWidthVal += TdWidthVal * TWidthVal; } else { TempWidthVal += parseFloat(matchesWArr[0].replace(/\s/g, "").replace("width=", "").replace("px", "")); } } ReArr.WidthVal = TempWidthVal > ReArr.WidthVal ? TempWidthVal : ReArr.WidthVal; if (ReArr.WidthVal != 0) { ReArr.ImgFlag = true; } } htmlStr = htmlStr.replace(matchesArr[i], ""); } } // 其他处理 pattStr = new RegExp(/(<(p){1}.*?>).*?(<\/\2>)/ig); matchesArr = htmlStr.match(pattStr); if (matchesArr != undefined && matchesArr.length > 0) { // 清除匹配的P标签 for (var i = 0; i < matchesArr.length; i++) { // 去除多标签 pattStr = new RegExp(/(<([a-z|A-Z]+){1}.*?>).*?(<\/\2>)/i); var NewhtmlStr = matchesArr[i]; while (pattStr.test(NewhtmlStr)) { var tTmatchesArr = NewhtmlStr.match(pattStr); if (tTmatchesArr.length > 0) { // 存在P标签 NewhtmlStr = NewhtmlStr.replace(tTmatchesArr[1], "").replace(tTmatchesArr[3], ""); } } // 去除单标签 pattStr = new RegExp(/(<([a-z|A-Z]+){1}\\s*\/\\s*>)/i); while (pattStr.test(NewhtmlStr)) { var tTmatchesArr = NewhtmlStr.match(pattStr); if (tTmatchesArr.length > 0) { // 存在P标签 NewhtmlStr = NewhtmlStr.replace(tTmatchesArr[1], ""); } } if (i == 0 || (htmlStr.length < NewhtmlStr.length)) { htmlStr = NewhtmlStr; } } } else { pattStr = new RegExp(/(<([a-z|A-Z]+){1}.*?>).*?(<\/\2>)/i); // 去除多标签 while (pattStr.test(htmlStr)) { var tTmatchesArr = htmlStr.match(pattStr); if (tTmatchesArr.length > 0) { // 存在P标签 htmlStr = htmlStr.replace(tTmatchesArr[1], "").replace(tTmatchesArr[3], ""); } } // 去除单标签 pattStr = new RegExp(/(<([a-z|A-Z]+){1}\\s*\/\\s*>)/i); while (pattStr.test(htmlStr)) { var tTmatchesArr = htmlStr.match(pattStr); if (tTmatchesArr.length > 0) { // 存在P标签 htmlStr = htmlStr.replace(tTmatchesArr[1], ""); } } } // 去除多空格 while (htmlStr.match(/\s\s/g)) { htmlStr = htmlStr.replace(/\s\s/g, " "); } while (htmlStr.indexOf("  ") > -1) { htmlStr = htmlStr.replace("  ", " "); } ReArr.TextStr = htmlStr; return ReArr; }; // 计算存在padding的表格 function GetPadVal(THandel) { // 判断是否存在border var BorderVal = 0; var BorderStr = $(THandel).css("border-right-width"); if (BorderStr != null && BorderStr != "") { BorderVal = parseFloat(BorderStr.replace("px").replace("PX")); } BorderStr = $(THandel).css("border-right-width"); if (BorderStr != null && BorderStr != "") { BorderVal += parseFloat(BorderStr.replace("px").replace("PX")); } // 判断是否存在padding var PaddingVal = $(THandel).css("padding"); if (PaddingVal == null || PaddingVal == "") { PaddingVal = parseFloat($(THandel).css("padding-left")) + parseFloat($(THandel).css("padding-right")); if (PaddingVal == null || PaddingVal == "") { return BorderVal; } return BorderVal + PaddingVal; } var PadValArr = PaddingVal.split(" "); if (PadValArr.length > 2) { return BorderVal + parseFloat(PadValArr[1]) + parseFloat(PadValArr[3]); } else if (PadValArr.length > 1) { return BorderVal + parseFloat(PadValArr[1]) * 2; } else { return BorderVal + parseFloat(PadValArr[0]) * 2; } }; // 动态获取表格最小宽度设置(最小宽度165px) var GetMinTableVal = function (TSWidth) { if (TSWidth > 320) { return 165 + (TSWidth - 320) * 0.09; } else { return 165; } }; var AdjustTableFunc = function (sWidthVal, isAStatus) { if ($("table").length == 0) { return; } // 添加宽度处理 var ScreenWidth = sWidthVal; var TempMinWidth = GetMinTableVal(ScreenWidth); $(document.body).append(''); $("table").find(".yaoshi").addClass("nextpic"); $.each($("table"), function (index, item) { // 处理表格总宽度 var ArrMaxLen = []; var FJArrMaxLen = []; var TableWidth = 0; var TotalMaxLen = 0; var RuleFlag = true; // 表示规则 var HasIndex = 0; RSArrs = []; var NewAStatus = (isAStatus == "undefined" || isAStatus == undefined || isAStatus == null) ? 0 : parseInt(isAStatus); if (NewAStatus == 1) { // 判断是否存在答题点 NewAStatus = $(item).find(".yaoshi").length > 0 ? 1 : 0; } var CheckBoxFlag = $(item).find(".boxQue").length > 0 && $(item).find(".boxQue").length == $(item).find(".yaoshi").length; // 判断是否是只存在多选框,定位对应的列 $.each($(item).find("tr"), function (trIndex, trItem) { $.each($(trItem).find("td"), function (tdIndex, tdItem) { var RowSpanNum = parseInt($(tdItem).attr("rowspan")); var ColSpanNum = parseInt($(tdItem).attr("colspan")); RowSpanNum = (RowSpanNum == 0 || isNaN(RowSpanNum)) ? 1 : RowSpanNum; ColSpanNum = (ColSpanNum == 0 || isNaN(ColSpanNum)) ? 1 : ColSpanNum; if (ColSpanNum > 1) { RuleFlag = false; } if (RowSpanNum > 1) { var RSArr = { RSIndex: HasIndex, RSNumber: RowSpanNum, RSXIndex: tdIndex, RSYIndex: trIndex }; HasIndex += 1; RSArrs.push(RSArr); } var WidthVal = $(tdItem).css("width").replace("px", ""); var RemoveHtmlArr = removeHtmlFunc($(tdItem).html(), WidthVal); // 附加处理图片宽度 DealImageWFunc(trItem, WidthVal); $("#pContrainId").text(RemoveHtmlArr.TextStr); var tdWidthVal = $("#pContrainId").width() + parseFloat(RemoveHtmlArr.WidthVal); // 获取文字宽度 tdWidthVal += GetPadVal($(tdItem)) + 10; if (!RemoveHtmlArr.ImgFlag && (tdWidthVal > ScreenWidth)) { tdWidthVal = ScreenWidth; } // 判断是否需要设置最小宽度 if (tdWidthVal < TempMinWidth && NewAStatus == 1 && !CheckBoxFlag) { tdWidthVal = TempMinWidth; } if (tdWidthVal < 100 && NewAStatus == 1 && !CheckBoxFlag) { tdWidthVal = 100; } if (ArrMaxLen.length < tdIndex + 1) { ArrMaxLen.push(0); } if (RSArrs.length > 0) { for (var i = 0; i < RSArrs.length; i++) { if (RSArrs[i].RSNumber > 1 && RSArrs[i].RSYIndex == trIndex) { if (ArrMaxLen[tdIndex] < tdWidthVal && ColSpanNum == 1) { TotalMaxLen += tdWidthVal - ArrMaxLen[tdIndex]; ArrMaxLen[tdIndex] = tdWidthVal; } } } } else { if (ArrMaxLen[tdIndex] < tdWidthVal && ColSpanNum == 1) { TotalMaxLen += tdWidthVal - ArrMaxLen[tdIndex]; ArrMaxLen[tdIndex] = tdWidthVal; } else if (ColSpanNum > 1) { var AddFlag = true; for (var i = 0; i < FJArrMaxLen.length; i++) { if (FJArrMaxLen[i].tdIndex == tdIndex) { if (FJArrMaxLen[i].WidthVal < tdWidthVal) { FJArrMaxLen[i].WidthVal = tdWidthVal; AddFlag = false; } } } if (AddFlag) { FJArrMaxLen.push({ trIndex: trIndex, tdIndex: tdIndex, WidthVal: tdWidthVal }); } } } }); for (var i = 0; i < RSArrs.length; i++) { if (RSArrs[i].RSNumber > 1) { RSArrs[i].RSNumber -= 1; } else { RSArrs.splice(i); } } }); for (var i = 0; i < FJArrMaxLen.length; i++) { for (var j = 0; j < ArrMaxLen.length; j++) { if (ArrMaxLen[j] == 0 && FJArrMaxLen[i].tdIndex == j) { ArrMaxLen[j] = FJArrMaxLen[i].WidthVal; } } } // 判断表格是否只有一行 if ($(item).find("tr").length == 1 && $(item).find("td").length == 1) { $(item).find("tr").eq(0).find("td").eq(0).css("width", ScreenWidth + "px"); $(item).css("width", ScreenWidth + "px"); } else { if (TotalMaxLen < ScreenWidth) { var AddPx = (ScreenWidth - TotalMaxLen) / ArrMaxLen.length; AddPx = AddPx > 2 ? AddPx - 2 : AddPx; for (var i = 0; i < ArrMaxLen.length; i++) { ArrMaxLen[i] += AddPx; } } var OneFlag = false; for (var i = 0; i < ArrMaxLen.length; i++) { if (ArrMaxLen[i] != undefined && ($(item).find("td").length > 1 || $(item).find("tr").length > 1) && RuleFlag) { if (i < ArrMaxLen.length - 1) { $(item).find("tr").find("td").eq(i).css("width", ArrMaxLen[i] + "px"); TableWidth += ArrMaxLen[i]; } else { $(item).find("tr").find("td").eq(i).css("width", (ArrMaxLen[i] - 10) + "px"); TableWidth += (ArrMaxLen[i] - 10); } } else if (ArrMaxLen[i] != undefined && $(item).find("tr").length == 1 && $(item).find("td").length == 1) { OneFlag = true; if (ArrMaxLen.length - 1 == i) { TableWidth += ArrMaxLen[i] - 10; } else { TableWidth += ArrMaxLen[i]; } } } if (ArrMaxLen != undefined && ($(item).find("td").length > 1 || $(item).find("tr").length > 1) && !RuleFlag) { var TWAFlag = true; $.each($(item).find("tr"), function (trIndex, trItem) { if ($(trItem).find("td").length == ArrMaxLen.length) { $.each($(trItem).find("td"), function (tdIndex, tdItem) { if (TWAFlag) { TableWidth += ArrMaxLen[tdIndex]; } $(tdItem).css("width", ArrMaxLen[tdIndex] + "px"); }); TWAFlag = false; } }); } if (OneFlag) { $(item).find("tr").eq(0).find("td").eq(0).css("width", TableWidth + "px"); } $(item).css("width", TableWidth + "px"); } // 替换HTML var ChildhtmlStr = $(item).prop("outerHTML"); var htmlStr = "
"; $(item).after(htmlStr); $(item).remove(); var JqStr = ".TContain_" + index; $(JqStr).append(ChildhtmlStr); }); var BodyWidth = isNaN(parseFloat(ScreenWidth)) ? 0 : parseFloat(ScreenWidth); // 界面宽度 $.each($("table"), function (index, item) { var TableWidth = isNaN(parseFloat($(item).width())) ? 0 : parseFloat($(item).width()); // 表格宽度 // 替换HTML var JqStr = ".TContain_" + index; $(JqStr).css("width", BodyWidth + "px"); if (TableWidth > BodyWidth) { // 额外显示滚动条 var ShtmlStr = "
"; $(JqStr).after(ShtmlStr); var HiddenRate = BodyWidth / TableWidth; // 滚动条比率 var HiddenWidth = BodyWidth - (TableWidth - BodyWidth) * HiddenRate; // 现滚动条大小 var CShtmlStr = "
"; $(JqStr).next().append(CShtmlStr); } else { $(JqStr).css("margin-bottom", "15px"); } }); $.each($(".container-table"), function (index, item) { $(item).css("width", BodyWidth + "px"); }); // 滚动条事件 $(".TableContainer").on("touchstart", function () { pressTableFlag = true; }).on("touchmove", function () { var TableWidth = isNaN(parseFloat($(this).find("table").width())) ? 0 : parseFloat($(this).find("table").width()); // 表格宽度 var HiddenRate = BodyWidth / TableWidth; // 滚动条比率 var SLeftWdith = isNaN(parseFloat($(this)[0].scrollLeft)) ? 0 : parseFloat($(this)[0].scrollLeft); SLeftWdith *= HiddenRate; var NextClsName = $(this).next().attr("class"); if (NextClsName == "PSBar") { $(this).next().find(".CSBar").css("left", SLeftWdith + "px"); } }); window.addEventListener("scroll", function (event) { var ClsName = event.target.className; if (ClsName == undefined) { return; } ClsName = ClsName.replace("TableContainer ", "."); var TableWidth = isNaN(parseFloat($(ClsName).find("table").width())) ? 0 : parseFloat($(ClsName).find("table").width()); // 表格宽度 var HiddenRate = BodyWidth / TableWidth; // 滚动条比率 var SLeftWdith = isNaN(parseFloat($(ClsName)[0].scrollLeft)) ? 0 : parseFloat($(ClsName)[0].scrollLeft); SLeftWdith *= HiddenRate; var NextClsName = $(ClsName).next().attr("class"); if (NextClsName == "PSBar") { $(ClsName).next().find(".CSBar").css("left", SLeftWdith + "px"); } }, true); $("#pContrainId").remove(); }; // #endregion //#region 听力音频处理 var LimitPreFlag = false; // 限制点击过宽 var AddListenDiv = function (NodeHandle, NIndex, sWidthVal) { var UrlStr = $(NodeHandle).attr("alt"); var ListenDivWidth = sWidthVal; ListenDivWidth = (ListenDivWidth > 414 ? 414 : ListenDivWidth); if (UrlStr != null && UrlStr.indexOf("|") > -1) { var UrlArr = UrlStr.split("|"); var UrlArrLen = UrlArr.length; var htmlStr = '
'; var MaxLeftVal = (ListenDivWidth - 295) / 2; // 自动调整宽度 var selectIndex = 0; for (var i = 0; i < UrlArr.length; i++) { var SelectedN = (i == 0 ? 1 : 0); if (SelectedN) { selectIndex = i; } htmlStr += '
听力材料' + (i + 1) + '
'; } htmlStr += '
00:00/00:00
'; } else if (UrlStr != null) { var htmlStr = '
00:00/00:00
'; } $(NodeHandle).css("width", "1px").css("height", "1px").css("overflow", "hidden").after(htmlStr); // 添加滑块事件 $(".LDFProcImg")[NIndex].addEventListener("touchstart", TouchStartFunc, false); $(".LDFProcImg")[NIndex].addEventListener("touchmove", TouchMoveFunc, false); $(".LDFProcImg")[NIndex].addEventListener("touchend", TouchEndFunc, false); } // 切换听力材料 var cLSourceFunc = function (iIndex, oIndex) { pauseMusicFunc(iIndex); var jQIStr = ".LDivTItem_" + iIndex; var jQIOStr = ".LDivTItem_" + iIndex + '_' + oIndex; $(jQIStr).attr("data-selected", 0); $(jQIOStr).attr("data-selected", 1); jQIStr = ".SImg_" + iIndex; //var dataUrlLen = $(jQIStr).attr("data-urllen"); var LeftPx = 0; var MLValStr = $(jQIStr).attr("data-mlval"); LeftPx = 50 + oIndex * (85 + parseInt(MLValStr)); $(jQIStr).css("left", LeftPx + "px"); } // 暂停播放处理 var playMusicFunc = function (iIndex) { if (LimitPreFlag) { return; } else { LimitPreFlag = true; window.setTimeout(function () { LimitPreFlag = false; }, 500); } $(".select-answer").removeClass("select-answer"); var jQStr = ".LDFPlayS_" + iIndex; var playStatus = $(jQStr).attr("data-playstatus"); // 检测当前状态,0表示暂停 var AudioUrl = $(jQStr).parent().prev(".LDivTop").find(".LDivTItem[data-selected='1']").attr("data-auduourl"); var AStatus = 0; if (playStatus == "0") { StopAllCss(); $(jQStr).attr("data-playstatus", 1); AStatus = 1; } else { $(jQStr).attr("data-playstatus", 0); AStatus = 2; } var info = { Id: iIndex, // 第几个 AudioUrl: AudioUrl, // 音频 AStatus: AStatus, // 播放状态:0表示重置,1表示播放,2表示暂停 } playVisiableAudioCallBack(1, JSON.stringify(info)); } // 重置播放处理 var pauseMusicFunc = function (iIndex) { $(".select-answer").removeClass("select-answer"); var jQStr = ".LDFPlayS_" + iIndex; $(jQStr).attr("data-playstatus", 0); var jQStr = ".LDFPWhite_" + iIndex; var TTimeNum = parseInt($(jQStr).attr("data-alltime")); var AudioUrl = $(jQStr).parent().prev(".LDivTop").find(".LDivTItem[data-selected='1']").attr("data-auduourl"); var info = { Id: iIndex, // 第几个 AudioUrl: AudioUrl, // 音频 AStatus: 0, // 播放状态:0表示重置,1表示播放,2表示暂停 } playVisiableAudioCallBack(1, JSON.stringify(info)); } // 设置滑块的位置 var playImageFunc = function (iIndex, leftVal, allTimes) { var jQStr = ".LDFProcImg_" + iIndex; var PWidthVal = $(jQStr).parent().css("width"); // 兼容单位 var PUint = ""; if (PWidthVal.indexOf("px") > -1) { PUint = "px"; PWidthVal = PWidthVal.replace(PUint, ""); } else if (PWidthVal.indexOf("pt") > -1) { PUint = "pt"; PWidthVal = PWidthVal.replace(PUint, ""); } else if (PWidthVal.indexOf("em") > -1) { PUint = "em"; PWidthVal = PWidthVal.replace(PUint, ""); } if (allTimes <= 0) { $(jQStr).css("left", "-15px"); // 设置滑块滚动 jQStr = ".LDFPWhite_" + iIndex; $(jQStr).css("width", "0px").attr("data-ctime", "0").attr("data-alltime", "0"); // 白色背景 jQStr = ".RunTime_" + iIndex; $(jQStr).text(timeToStrFunc(0)); // 设置文字显示 jQStr = ".RunAllTime_" + iIndex; $(jQStr).text(timeToStrFunc(0)); // 设置文字显示 } else { var LeftPx = (leftVal * parseFloat(PWidthVal)) / allTimes; $(jQStr).css("left", (LeftPx - 15) + PUint); // 设置滑块滚动 jQStr = ".LDFPWhite_" + iIndex; $(jQStr).css("width", LeftPx + PUint).attr("data-ctime", leftVal).attr("data-alltime", allTimes); // 白色背景 jQStr = ".RunTime_" + iIndex; $(jQStr).text(timeToStrFunc((leftVal / 1000))); // 设置文字显示 jQStr = ".RunAllTime_" + iIndex; $(jQStr).text(timeToStrFunc((allTimes / 1000))); // 设置文字显示 } }; // 时间转换 var timeToStrFunc = function (timerNumber) { timerNumber = Math.floor(timerNumber); var ReStr = ""; var TempData = 0; if (isNaN(timerNumber) || timerNumber == "") { return "00:00"; } if (timerNumber >= 3600) { TempData = Math.floor(timerNumber / 3600); timerNumber -= TempData * 3600; ReStr += (TempData < 10 ? ("0" + TempData) : TempData) + ":"; } if (timerNumber >= 60) { var TempData = Math.floor(timerNumber / 60); timerNumber -= TempData * 60; ReStr += (TempData < 10 ? ("0" + TempData) : TempData) + ":"; } else { ReStr += "00:"; } if (timerNumber < 10) { ReStr += "0" + timerNumber; } else { ReStr += timerNumber; } return ReStr; }; var TouchStartX = 0; var TouchMoveX = 0; var TouchIndex = -1; // 位置标识 var TallTimeNum = 0; // 总时间 var LeftTimeNum = 0; // 总时间 var PWidthValNum = 0; // 总宽度 // 滑块滑动控制(按下去) function TouchStartFunc(event) { TouchStartX = event.touches[0].pageX; TouchMoveX = TouchStartX; TouchIndex = parseInt($(event.target).attr("class").replace("LDFProcImg LDFProcImg_", "")); var jQStr = ".LDFPWhite_" + TouchIndex; TallTimeNum = parseInt($(jQStr).attr("data-alltime")); LeftTimeNum = parseInt($(".LDFPWhite_" + TouchIndex).attr("data-ctime")); PWidthValNum = parseFloat($(jQStr).parent().css("width")); // 总宽度 if (TallTimeNum > 0) { mobileTSFunc(TouchIndex); } } // 滑块滑动 function TouchMoveFunc(event) { TouchMoveX = event.touches[0].pageX; TouchMoveY = event.touches[0].pageY; var TLeftTimeNumber = Math.ceil(TallTimeNum * Math.abs(TouchMoveX - TouchStartX) / PWidthValNum); if (TouchStartX > TouchMoveX) { // 左移 if ((LeftTimeNum - TLeftTimeNumber) < 0) { TLeftTimeNumber = 0; } else { TLeftTimeNumber = LeftTimeNum - TLeftTimeNumber; } playImageFunc(TouchIndex, TLeftTimeNumber, TallTimeNum); } else { // 右移 if ((LeftTimeNum + TLeftTimeNumber) > TallTimeNum) { TLeftTimeNumber = TallTimeNum; } else { TLeftTimeNumber = LeftTimeNum + TLeftTimeNumber; } playImageFunc(TouchIndex, TLeftTimeNumber, TallTimeNum); } } // 滑块滑动控制(抬起来) function TouchEndFunc(event) { mobileTEFunc(TouchIndex); } //原文音频播放按钮点击事件 function audioPlayClick(myobj) { var curHtml = $(myobj).parent().find(".audioUrl").html(); var curAlt = $(myobj).attr("alt"); //处理当前按钮的状 if ($(myobj).attr("play-status") == "1") { $(myobj).attr("play-status", "0"); $(myobj).attr("src", PicInfo.audioPauseImgUrl);//移动端要根据本地 喇叭 路径替换 } else { //停止其他作答音频播放 var isRecordPlaying = $(".answer-audio-range[play-status='1']"); if (isRecordPlaying.length > 0) { $(isRecordPlaying).attr("play-status", "0"); $(isRecordPlaying).find("img").attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地路径替换 } //停止其他原文音频播放 var audioPlaying = $(".audioImg[play-status='1']"); if (audioPlaying.length > 0) { $(audioPlaying).attr("play-status", "0"); $(audioPlaying).attr("src", PicInfo.audioPauseImgUrl);//移动端要根据本地 喇叭 路径替换 } //设置播放状态 $(myobj).attr("play-status", "1"); $(myobj).attr("src", PicInfo.audioPlayImgUrl);//移动端要根据本地 喇叭 路径替换 } if (cTTypeFunc == 1) { //移动端添加外部处理(安卓) var info = new Object(); info.Id = $(myobj).attr("audio-id"); info.AudioUrl = curAlt; playVisiableAudioCallBack(1, JSON.stringify(info)); } else { //移动端添加外部处理(iOS) cancelBubble(); alert("media:" + "0" + "℡№℡" + curId + "℡№℡" + curAlt); } } //#endregion // #region 多选框处理 // 多选点击(多选框是否可选) var ControlFlag = true; var clickCheckBox = function (inputId) { if (!ControlFlag) { return; } $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); var BoxJqStr = ".cBoxCls_" + inputId; if ($(BoxJqStr).attr("data-status") == "1") { $(BoxJqStr).attr("data-status", "0"); } else { $(BoxJqStr).attr("data-status", "1"); } var parentAnid = $(BoxJqStr).attr("parent-anid"); $(".cBoxCls[parent-anid='" + parentAnid + "']").parent(".cBoxClsBg").attr("data-select", "1"); var curObj = new Object(); curObj.Id = $(BoxJqStr).attr("answer-id");//答题点ID curObj.pId = $(BoxJqStr).attr("parent-anid");//答题点ID curObj.IsKY = 2;//是否是口语试题,0-不是口语题,1-是口语题 curObj.AnsText = $(BoxJqStr).attr("answer-anstext");//参考答案 onClickAnswerPoint(JSON.stringify(curObj)); } // #endregion // #region 高亮处理 var TFillData = []; /*高亮文本标注*/ function Fill(data) { // 清空原有高亮渲染 $.each($(".wordStyle,.phraseStyle,.sentenceStyle"), function (i, item) { $(item).attr("data-setstatus", "0").attr("data-lstatus", "0").removeClass("wordStyle").removeClass("phraseStyle").removeClass("sentenceStyle"); $(".sentImagcs").remove(); }); // 重新渲染 $.each(data, function (i, item) { if (typeof (item.HightCode) != 'undefined' && item.HightCode != null && item.HightCode != "") { var highlightItem = $('span[id=' + item.HightCode + ']').eq(0); if (highlightItem.length > 0) { // data-scolor显示的颜色等级卡控,data-setstatus高亮是否处于显示状态,data-lstatus:卡控是否能点击(1单词,2短语,3句型) var FlagName = $('span[id=' + item.HightCode + ']').eq(0).attr("flag"); var ClsName = ""; var LClick = "0"; if (FlagName == "word") { ClsName = "wordStyle"; LClick = "1"; } else if (FlagName == "phrase") { ClsName = "phraseStyle"; LClick = "2"; } else if (FlagName == "sentence") { ClsName = "sentenceStyle"; LClick = "3"; } var hitCode = highlightItem.attr('hitCode'); var ThitCode = ""; if (hitCode) { ThitCode = hitCode + "|" + item.SourceCode; } else { ThitCode = item.SourceCode; } $('span[id=' + item.HightCode + ']').eq(0).addClass(ClsName).attr("data-setstatus", "1").attr("data-lstatus", LClick).attr("hitCode", ThitCode); var AddImg = ($('span[id=' + item.HightCode + ']').eq(0).prev().attr('class') == "sentImagcs") ? true : false; if (ClsName == "sentenceStyle" && !AddImg) { $('span[id=' + item.HightCode + ']').eq(0).before(''); } } } else if (typeof (item.SourceCode) == 'undefined' || item.SourceCode == null || item.SourceCode != "") { var highlightItem = $('span[kcode*=' + item.SourceCode + ']:first'); if (highlightItem.length > 0) { // data-scolor显示的颜色等级卡控,data-setstatus高亮是否处于显示状态,data-lstatus:卡控是否能点击(1单词,2短语,3句型) var FlagName = $('span[id=' + item.HightCode + ']').eq(0).attr("flag"); var ClsName = ""; var LClick = "0"; if (FlagName == "word") { ClsName = "wordStyle"; LClick = "1"; } else if (FlagName == "phrase") { ClsName = "phraseStyle"; LClick = "2"; } else if (FlagName == "sentence") { ClsName = "sentenceStyle"; LClick = "3"; } var hitCode = highlightItem.attr('hitCode'); var ThitCode = ""; if (hitCode) { ThitCode = hitCode + "|" + item.SourceCode; } else { ThitCode = item.SourceCode; } $('span[id=' + item.HightCode + ']').eq(0).addClass(ClsName).attr("data-setstatus", "1").attr("data-lstatus", LClick).attr("hitCode", ThitCode); var AddImg = ($('span[id=' + item.HightCode + ']').eq(0).prev().attr('class') == "sentImagcs") ? true : false; if (ClsName == "sentenceStyle" && !AddImg) { $('span[id=' + item.HightCode + ']').eq(0).before(''); } } } }); // 附加是否被点击属性data-glclick,0表示未被选中,1表示已选中 $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); } // 嵌套式答题点不作高亮显示(只做隐藏) function DealCssHiddenFunc() { // 处理.wordStyle,.phraseStyle,.sentenceStyle全包含underlineContent情况 $.each($(".wordStyle,.phraseStyle"), function (i, item) { var displayCss = $(item).find(".underlineContent").css("display"); var showflag = $(item).find(".underlineContent").attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 $(item).attr("data-lstatus", "0").attr("data-setstatus", "0"); // 不高亮也不可点击 } }); $.each($(".sentenceStyle"), function (i, item) { var displayCss = $(item).find(".underlineContent").css("display"); var showflag = $(item).find(".underlineContent").attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 $(item).attr("data-lstatus", "0").attr("data-setstatus", "0"); // 不高亮也不可点击 $(item).prev(".sentImagcs").attr("data-lstatus", "0").attr("data-setstatus", "0"); // 不高亮也不可点击 } }); // 处理underlineContent全包含.wordStyle,.phraseStyle,.sentenceStyle情况 $.each($(".underlineContent"), function (i, item) { var displayCss = $(item).css("display"); var showflag = $(item).attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 $(item).find(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-lstatus", "0").attr("data-setstatus", "0"); // 不高亮也不可点击 $(item).find(".sentImagcs").attr("data-lstatus", "0").attr("data-setstatus", "0"); // 不高亮也不可点击 } }); } // 嵌套式答题点高亮显示(重新渲染) function DealCssShowFunc() { $.each($(".wordStyle"), function (i, item) { if ($(item).find(".underlineContent").length == 1) { var displayCss = $(item).find(".underlineContent").css("display"); var showflag = $(item).find(".underlineContent").attr("showflag"); if (displayCss != "none" && showflag == "1") { // 针对答题点进行做隐藏处理 $(item).attr("data-lstatus", "1").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else if ($(item).find(".underlineContent").length > 1) { var AllShow = true; $.each($(item).find(".underlineContent"), function (tIndex, tItem) { var displayCss = $(tItem).css("display"); var showflag = $(tItem).attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 AllShow = false; } }); if (AllShow) { $(item).attr("data-lstatus", "1").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else { $(item).attr("data-lstatus", "1").attr("data-setstatus", "1"); // 显示高亮和可点击 } }); $.each($(".phraseStyle"), function (i, item) { if ($(item).find(".underlineContent").length == 1) { var displayCss = $(item).find(".underlineContent").css("display"); var showflag = $(item).find(".underlineContent").attr("showflag"); if (displayCss != "none" && showflag == "1") { // 针对答题点进行做隐藏处理 $(item).attr("data-lstatus", "2").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else if ($(item).find(".underlineContent").length > 1) { var AllShow = true; $.each($(item).find(".underlineContent"), function (tIndex, tItem) { var displayCss = $(tItem).css("display"); var showflag = $(tItem).attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 AllShow = false; } }); if (AllShow) { $(item).attr("data-lstatus", "2").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else { $(item).attr("data-lstatus", "2").attr("data-setstatus", "1"); // 显示高亮和可点击 } }); $.each($(".sentenceStyle"), function (i, item) { if ($(item).find(".underlineContent").length == 1) { var displayCss = $(item).find(".underlineContent").css("display"); var showflag = $(item).find(".underlineContent").attr("showflag"); if (displayCss != "none" && showflag == "1") { // 针对答题点进行做隐藏处理 $(item).attr("data-lstatus", "3").attr("data-setstatus", "1"); // 显示高亮和可点击 $(item).prev(".sentImagcs").attr("data-lstatus", "3").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else if ($(item).find(".underlineContent").length > 1) { var AllShow = true; $.each($(item).find(".underlineContent"), function (tIndex, tItem) { var displayCss = $(tItem).css("display"); var showflag = $(tItem).attr("showflag"); if (displayCss == "none" || showflag == "0") { // 针对答题点进行做隐藏处理 AllShow = false; } }); if (AllShow) { $(item).attr("data-lstatus", "3").attr("data-setstatus", "1"); // 显示高亮和可点击 } } else { $(item).attr("data-lstatus", "3").attr("data-setstatus", "1"); // 显示高亮和可点击 } }); } // #endregion // 判断是否存在对象中 function checkStrFunc(dataDtr) { if (dataDtr == undefined || dataDtr == null) { return false; } if (TFillData != null && TFillData.length > 0) { var ReFlag = false; TFillData.forEach(item=> { if (item.HightCode == dataDtr) { ReFlag = true; } }); return ReFlag; } else { return false; } } // 空字符串转换 function ChangeSpaceStr(DataStr) { if (DataStr == undefined || DataStr == null) { return ""; } var TDataStr = escape(DataStr); // encodeURI if (TDataStr.indexOf("%C2%A0") > -1) { DataStr = escape(DataStr); var DataArr = DataStr.split("%C2%A0"); DataStr = ""; for (var i = 0; i < DataArr.length; i++) { if (DataStr == "") { DataStr += DataArr[i]; } else { DataStr += " " + DataArr[i]; } } } if (TDataStr.indexOf("%A0") > -1) { DataStr = escape(DataStr); var DataArr = DataStr.split("%A0"); DataStr = ""; for (var i = 0; i < DataArr.length; i++) { if (DataStr == "") { DataStr += DataArr[i]; } else { DataStr += " " + DataArr[i]; } } } if (DataStr.indexOf("%20") > -1) { while (DataStr.indexOf("%20") > -1) { DataStr = DataStr.replace("%20", " "); } } if (DataStr.indexOf("%27") > -1) { while (DataStr.indexOf("%27") > -1) { DataStr = DataStr.replace("%27", "'"); } } return DataStr; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 处理节点(使用data-scolor显示的颜色等级卡控,data-setstatus高亮是否处于显示状态,data-lstatus:卡控是否能点击(1单词,2短语,3句型)) //页面加载完,课件 绑定事件(sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是) function bindEventYS(sWidthVal, isAStatus, isMAStatus) { IsZTKEStatus = (isMAStatus == "undefined" || isMAStatus == undefined || isMAStatus == null) ? 0 : parseInt(isMAStatus); // 处理文本 dealUnderLineFunc(); $.each($(".yaoshi"), function (index, item) { $(item).attr('answer-id', index).attr("parent-anid", index).attr("showflag", "1").css("display", "block").attr("data-status", "1").attr("answer-isky", "0").attr("src", PicInfo.yaoshiShowImgUrl); // 关联渲染underlinecontent if ($(item).next().length > 0) { selectImgULContent($(item).next(), index); } else { selectImgULContent($(item).parent(), index); } // 如果不存在答题点答案,那么构建一个空的underlinecontent if ($(".underlineContent[yaoshi-flag='" + index + "']").length == 0) { var HtmlStr = ''; $(this).after(HtmlStr); } // 获取当前要是的标准答案 var AnswerText = ""; $.each($(".underlineContent[yaoshi-flag='" + index + "']"), function (tIndex, tItem) { AnswerText += $(this).text(); // 补充嵌套,data-select表示选择状态0表示未选择,1表示已作答选择,2表示未作答选择 if ($(this).parent().children().length > 1) { $(this).prop("outerHTML", '' + $(this).prop("outerHTML") + ''); } else { $(this).parent().addClass("ULCBGUse").attr("data-select", "0"); } }); $(this).attr("answer-anstext", AnswerText); }); //给音频绑定一个ID(未处理) $.each($(".audioImg"), function (index, item) { $(item).attr("src", PicInfo.audioPauseImgUrl); $(item).attr("audiourl", ""); $(item).attr('audio-id', index); }); //给视频图标处理(未处理) $.each($(".videoImg"), function (index, item) { $(item).attr("src", PicInfo.videoPlayImgUrl); $(item).attr("audiourl", ""); }); //给口语图标处理(未处理) $.each($(".oralLanguageImg"), function (index, item) { $(item).attr("src", PicInfo.speechAnswerImgUrl); $(item).attr("audiourl", ""); }); //处理口语试题 $.each($(".oralLanguage").nextUntil(".oralLanguageDone"), function (num, part) { if ($(part).hasClass("yaoshi")) { $(part).attr("answer-isky", "1"); } if ($(part).find(".yaoshi").length > 0) { $(part).find(".yaoshi").attr("answer-isky", "1"); } }); //一题多空的答题点标注 var checkId = 0; var headid = -1; var groupId = -1; $(".multipleStart").each(function (i, item) { var $startNode = $(item); var index = 0; $.merge($(item).nextUntil(".multipleEnd").filter("[class*='group']"), $(item).nextUntil(".multipleEnd").find("[class*='group']")).each(function (index, item) { checkId = $(item).find('.yaoshi').attr("answer-id"); var gid = $(item).attr('class').replace(/.*group(\d+).*/g, "$1"); if (index == 0 || groupId != gid) { groupId = gid; headid = checkId; } $(item).find('.yaoshi').attr('parent-anid', headid); $(item).find('.underlineContent').attr('parent-anid', headid); // 打标志,含有boxQue的是多选题 if ($(item).hasClass('boxQue')) { $(item).find('.yaoshi').attr('answer-isky', "2"); if ($(item).find(".underlineContent").length == 0) { var AddHtmlStr = '   '; $(item).find('.yaoshi').after(AddHtmlStr); } } }); }); //处理表格宽度 AdjustTableFunc(sWidthVal, isAStatus); // 音频处理 $.each($(".audioImg"), function (index, element) { AddListenDiv(element, index, sWidthVal); }); } //页面加载完,原文 绑定事件(sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是) function bindEventTeaOrignalYS(sWidthVal, isAStatus, isMAStatus) { IsZTKEStatus = (isMAStatus == "undefined" || isMAStatus == undefined || isMAStatus == null) ? 0 : parseInt(isMAStatus); // 处理文本 dealUnderLineFunc(); //处理答题点 $.each($(".yaoshi"), function (index, item) { $(item).attr('answer-id', index).attr("parent-anid", index).attr("showflag", "1").css("display", "block").attr("data-status", "1").attr("answer-isky", "0").attr("src", PicInfo.yaoshiShowImgUrl); // 关联渲染underlinecontent if ($(item).next().length > 0) { selectImgULContent($(item).next(), index); } else { selectImgULContent($(item).parent(), index); } // 如果不存在答题点答案,那么构建一个空的underlinecontent if ($(".underlineContent[yaoshi-flag='" + index + "']").length == 0) { var HtmlStr = ''; $(this).after(HtmlStr); } if (isAStatus != 1) { // 学生隐藏答案 $(item).attr('answer-id', index).attr("showflag", "0").css("display", "none").attr("data-status", "0").attr("answer-isky", "0").attr("src", PicInfo.yaoshiHideImgUrl); $(".underlineContent[yaoshi-flag='" + index + "']").not(".noKey").attr("showflag", "0"); // 隐藏答案(这种是连下划线删除的) } // 获取当前要是的标准答案 var AnswerText = ""; $.each($(".underlineContent[yaoshi-flag='" + index + "']"), function (tIndex, tItem) { AnswerText += $(this).text(); // 补充嵌套 if ($(this).parent().children().length > 1) { $(this).prop("outerHTML", '' + $(this).prop("outerHTML") + ''); } else { $(this).parent().addClass("ULCBGUse").attr("data-select", "0"); } }); $(this).attr("answer-anstext", AnswerText); }); //给音频绑定一个ID(未处理) $.each($(".audioImg"), function (index, item) { $(item).attr("src", PicInfo.audioPauseImgUrl); $(item).attr("audiourl", ""); $(item).attr('audio-id', index); }); //给视频图标处理(未处理) $.each($(".videoImg"), function (index, item) { $(item).attr("src", PicInfo.videoPlayImgUrl); $(item).attr("audiourl", ""); }); //给口语图标处理(未处理) $.each($(".oralLanguageImg"), function (index, item) { $(item).attr("src", PicInfo.speechAnswerImgUrl); $(item).attr("audiourl", ""); }); //一题多空的答题点标注 var checkId = 0; var headid = -1; var groupId = -1; $(".multipleStart").each(function (i, item) { var $startNode = $(item); var index = 0; $.merge($(item).nextUntil(".multipleEnd").filter("[class*='group']"), $(item).nextUntil(".multipleEnd").find("[class*='group']")).each(function (index, item) { checkId = $(item).find('.yaoshi').attr("answer-id"); var gid = $(item).attr('class').replace(/.*group(\d+).*/g, "$1"); if (index == 0 || groupId != gid) { groupId = gid; headid = checkId; } $(item).find('.yaoshi').attr('parent-anid', headid); $(item).find('.underlineContent').attr('parent-anid', headid); // 打标志,含有boxQue的是多选题 if ($(item).hasClass('boxQue')) { $(item).find('.yaoshi').attr('answer-isky', "2"); if ($(item).find(".underlineContent").length == 0) { var AddHtmlStr = '   '; $(item).find('.yaoshi').after(AddHtmlStr); } } }); }); //处理参考答案 $.each($(".underlineContent"), function (index, item) { $(item).attr("answer-anstext", $(item).html()); }); //处理表格宽度 AdjustTableFunc(sWidthVal, isAStatus); // 音频处理 $.each($(".audioImg"), function (index, element) { AddListenDiv(element, index, sWidthVal); }); } // 学生端 处理作答区域 answer-isky 是否是口语试题,0-不是口语题,1-是口语题,2-打勾题 var answerData = new Array(); function handleAnswerRange() { var answerId = ""; var tempJson = new Array(); //先处理一题多空的情况,获取两个之间的答题点 $.each($(".yaoshi"), function (index, item) { var AnswerID = $(item).attr("answer-id"); var AnswerPID = $(item).attr("parent-anid"); if (AnswerPID == undefined || AnswerPID == null) { AnswerPID = ""; } var AnswerIsky = $(item).attr("answer-isky"); if (AnswerIsky != 1 && AnswerIsky != 2) { AnswerIsky = 0; } // 获取答案 var TAnsText = ""; $.each($(".underlineContent[yaoshi-flag='" + AnswerID + "']"), function (index, tItem) { TAnsText += " " + $(tItem).text(); }); var ClsName = $(item).next().attr("class"); // 添加答题点 if (AnswerIsky == 2){ // 防止重复添加 if (cTTypeFunc == 2 && ClsName != "cBoxClsBg") { $(item).after("
"); } else if (ClsName != "cBoxClsBg") { $(item).after("
"); } } else { // 防止重复添加 if (cTTypeFunc == 2 && ClsName != "answer-body") { // data-astatus控制作答样式(0表示未提交,1表示提交,2表示回显);data-errstatus判断是否作答(1表示未作答) $(item).after("
作答音频
答题点
"); } else if (ClsName != "answer-body") { // data-astatus控制作答样式(0表示未提交,1表示提交,2表示回显);data-errstatus判断是否作答(1表示未作答) $(item).after("
作答音频
答题点
"); } } var info = new Object(); info.Id = AnswerID; info.pId = AnswerPID; info.IsKY = AnswerIsky; info.AnsText = TAnsText; // 标准答案 answerData.push(info); // 隐藏对应的钥匙和答案 $(item).attr("showflag", "0").css("display", "none").attr("data-status", "0").attr("src", PicInfo.yaoshiHideImgUrl); // 隐藏钥匙 $(".underlineContent[yaoshi-flag='" + AnswerID + "']").not(".noKey").css("display", "none"); // 隐藏答案(这种是连下划线删除的) }); if (cTTypeFunc == 1) { return answerData; } else { return JSON.stringify(answerData); } } //提交,获取所有作答答案及参考答案(未处理) function getAllAnswer() { // 从answer-body中获取答案 var TAnswerList = []; ControlFlag = false; $.each($(".yaoshi"), function (index, item) { var info = { "AStatus": 0, "AudioLength": 0, "AudioUrl": "", "Id": "0", "Score": -1.0, "Text": "", "Type": 1, "pId": "0", "playStartPoint": 0 }; var answerid = $(item).attr("answer-id"); var parentid = $(item).attr("parent-anid"); info.Id = answerid; info.pId = parentid; info.AStatus = ""; // 暂时没用到 info.Score = -1; // 作答得分,老师未评阅都是默认给-1分 info.Type = 1; //作答方式,1-文本作答,2-图片作答,3-音频作答,4-音频导入作答;目前只开放了1,3类型的作答方式 info.playStartPoint = ""; // 记录当前播放的时间点,下次继续播放时恢复到这个时间点 var answerisky = $(item).attr("answer-isky"); // 是否是口语试题,0-不是口语题,1-是口语题,2-打勾题 info.AudioLength = 0; // 时长 var answerurl = $(".answer-body[answer-id='" + answerid + "']").attr("answer-url"); // 非口语题的输入 if (answerisky == 1 || (answerurl != undefined && answerurl != null && answerurl.length > 0)) { info.AudioUrl = answerurl; var AnswerText = $(".answer-body[answer-id='" + answerid + "']").find(".answer-text").text(); info.AudioLength = $(".answer-body[answer-id='" + answerid + "']").attr("answer-audiolength"); info.Text = AnswerText; if (info.AudioUrl != undefined && info.AudioUrl != null && info.AudioUrl != "") { info.Type = 3; } } else if (answerisky == 2) { var IsCheck = $(".cBoxCls[answer-id='" + answerid + "']").attr("data-status"); if (IsCheck == "0") { info.Text = "   "; } else if (IsCheck == "1") { info.Text = "√"; } } else { var AnswerText = $(".answer-body[answer-id='" + answerid + "']").find(".answer-text").text(); info.Text = AnswerText; } TAnswerList.push(info); }); backupAllAnswer(JSON.stringify(TAnswerList), 1); return TAnswerList; } //接收学生的作答 function reviewAnswer(answerJson) { if (answerJson != "" && answerJson) { var answerObj = JSON.parse(answerJson); var selectElement = $(".answer-body[answer-id='" + answerObj.Id + "']"); var audioElement = $(selectElement).children(".answer-audio-range").children("img").eq(0); answerObj.IsKY = $(selectElement).attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题 // 多选 if (answerObj.IsKY == "2" && answerObj.Text == "√") { $(".cBoxCls[answer-id='" + answerObj.Id + "']").attr("data-status", "1"); } //是否为音频作答(Type:1,文本作答,2-图片,3-语音,4-音频导入) if ((answerObj.Type == 3 || answerObj.Type == 4) && answerObj.AudioUrl != "") { $(selectElement).children(".answer-point-range").hide(); $(selectElement).children(".answer-audio-range").css("display", "inline-block"); $(selectElement).children(".answer-audio-range").eq(0).children("span").text("作答音频(" + answerObj.AudioLength + "s)"); //填充作答内容 $(selectElement).attr("answer-text", answerObj.Text); $(".yaoshi[answer-id='" + answerObj.Id + "']").attr("answer-text", answerObj.Text); if (answerObj.Text != "") { answerObj.Text = "(" + answerObj.Text + ")"; $(selectElement).children(".answer-text").show(); $(selectElement).children(".answer-text").text(answerObj.Text); } else { $(selectElement).children(".answer-text").text(""); } //是否之前存在作答音频 //$(selectElement).attr("answer-url", answerObj.AudioUrl); $(selectElement).children(".answer-audio-range").attr("answer-url", answerObj.AudioUrl); $(audioElement).attr("src", PicInfo.recordPlayImgUrl); $(selectElement).children(".answer-audio-range").attr("play-status", "0"); //独立绑定事件 $(audioElement).on("click", function () { recordAudioClick(this, answerObj.Id, answerObj.AudioUrl); }); $(selectElement).attr("answer-showanswer", "1").attr("data-astatus", "3"); } else { $(selectElement).attr("answer-text", answerObj.Text);//填充作答内容 $(".yaoshi[answer-id='" + answerObj.Id + "']").attr("answer-text", answerObj.Text); $(selectElement).children(".answer-audio-range").hide(); if (answerObj.Text != "") { $(selectElement).children(".answer-text").show(); $(selectElement).children(".answer-point-range").hide(); $(selectElement).children(".answer-text").text(answerObj.Text); $(selectElement).attr("answer-showanswer", "1").attr("data-astatus", "3"); } else { $(selectElement).children(".answer-text").hide(); $(selectElement).children(".answer-text").text(""); $(selectElement).children(".answer-point-range").show(); $(selectElement).attr("answer-showanswer", "0").attr("data-astatus", "0"); } } } } //回填所有答案,answerJson:所有作答及参考答案List,statusType:0-可作答,1-已提交,2-查看评阅 function backupAllAnswer(answerJson, statusType) { if (statusType == 0) { ControlFlag = true; // 多选框可以作答 $(".answer-body").attr("data-astatus", statusType).attr("data-errstatus", "0"); // 实时记录作答状态 if (answerJson != "" && answerJson) { var answerList = JSON.parse(answerJson); $.each($(".answer-body"), function (num, item) { var index = 0; var isanswer = false; var answerid = $(item).attr("answer-id"); var parentid = $(item).attr("parent-anid"); //查找作答 for (var i = 0; i < answerList.length; i++) { if (answerid == answerList[i].Id) { index = i; break; } } //一题多空的作答关联查找 for (var i = 0; i < answerList.length; i++) { if (parentid == answerList[i].pId) { if (answerList[i].Text != "") { isanswer = true; break; } } } //提交直接还原作答现场 var mytext = answerList[index].Text;//我的答案 mytext = (mytext == undefined || mytext == null) ? "" : mytext; var CheckFlag = (mytext.indexOf("√") > -1) ? true : false; // 恢复多选处理 if (CheckFlag) { $(".cBoxCls[answer-id='" + answerid + "']").attr("data-status", "1"); } $(".yaoshi[answer-id='" + answerid + "']").attr("answer-score", answerList[index].Score); //作答评分 $(".yaoshi[answer-id='" + answerid + "']").attr("answer-text", mytext); // 作答内容 $(".yaoshi[answer-id='" + answerid + "']").attr("answer-comment", "");//评语 answerList[index].IsKY = $(item).attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题 //添加音频控制 var hasAudio = false; var audioElement = $(item).children(".answer-audio-range").children("img").eq(0); if ((answerList[index].Type == 3 || answerList[index].Type == 4) && answerList[index].AudioUrl != "") { hasAudio = true; $(item).children(".answer-point-range").hide(); $(item).children(".answer-audio-range").css("display", "inline-block"); $(item).children(".answer-audio-range").children("span").text("作答音频(" + answerList[index].AudioLength + "s)"); //填充作答内容 $(item).attr("answer-text", mytext); if (mytext != "") { mytext = "(" + mytext + ")"; $(item).children(".answer-text").show(); $(item).children(".answer-text").text(mytext); } //音频节点 $(audioElement).attr("src", PicInfo.recordPlayImgUrl); $(item).children(".answer-audio-range").attr("answer-url", answerList[index].AudioUrl); $(item).children(".answer-audio-range").attr("answer-audiolength", answerList[index].AudioLength); $(item).children(".answer-audio-range").attr("play-status", "0"); $(item).attr("data-astatus", "3"); } else { $(item).attr("answer-text", mytext);//填充作答内容 if (mytext != "") { $(item).attr("data-astatus", "3"); $(item).children(".answer-text").show(); $(item).children(".answer-point-range").hide(); $(item).children(".answer-text").text(mytext); } else { $(item).attr("data-errstatus", "1"); } } // 保留已作答全部信息 $(item).attr("answer-score", answerList[index].Score);//作答评分 //$(item).attr("answer-anstext", answerList[index].AudioUrl);//参考答案 }); //打勾题的还原 $.each($(".cBoxCls"), function (num, item) { //可作答状态,作答还原 var index = 0; var isanswer = false; var answerid = $(item).attr("answer-id"); var parentid = $(item).attr("parent-anid"); for (var i = 0; i < answerList.length; i++) { if (answerid == answerList[i].Id) { index = i; break; } } //提交直接还原作答现场 var mytext = answerList[index].Text;//我的答案 mytext = (mytext == undefined || mytext == null) ? "" : mytext; var ischecked = mytext.indexOf("√") > -1; //还原打勾效果 if (ischecked) { $(".cBoxCls_" + answerid).attr("data-status", "1"); } }); } } else { $(".answer-body").remove(); // 删除原有答题点 $(".cBoxCls").remove(); // 删除原有答题点 $(".underlineContent").attr("data-errstatus", "1"); // 标记为未作答 ControlFlag = false; // 多选框不可以作答 if (answerJson != "" && answerJson) { var answerList = JSON.parse(answerJson); $.each($(".yaoshi"), function (num, item) { var index = 0; // 记录当前下标 var isanswer = false; // 判断是否作答 var answerid = $(item).attr("answer-id"); var parentid = $(item).attr("parent-anid"); // 保留已作答全部信息 //$(".answer-body[answer-id='" + answerid + "']").attr("answer-anstext", answerList[index].AudioUrl);//参考答案 //查找作答下标 for (var i = 0; i < answerList.length; i++) { if (answerid == answerList[i].Id) { index = i; break; } } //一题多空的作答关联查找判断是否作答 for (var i = 0; i < answerList.length; i++) { if (parentid == answerList[i].pId && parentid != undefined && parentid != null && parentid != "") { if (answerList[i].Text != undefined && answerList[i].Text != null && answerList[i].Text != "" && answerList[i].Text.length > 0) { isanswer = true; break; } } } //提交直接还原作答现场 var mytext = answerList[index].Text;//我的答案 mytext = (mytext == undefined || mytext == null) ? "" : mytext; var CheckFlag = (mytext.indexOf("√") > -1) ? true : false; $(item).attr("answer-score", answerList[index].Score); //作答评分 $(item).attr("answer-text", mytext); // 作答内容 $(item).attr("answer-comment", ""); // 作答内容 answerList[index].IsKY = $(item).attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题,2-打勾题 //添加音频控制 var hasAudio = false; if ((answerList[index].Type == 3 || answerList[index].Type == 4) && answerList[index].AudioUrl != "") { hasAudio = true; var HtmlStr = '
作答音频(' + answerList[index].AudioLength + 's)
'; $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(0).html(HtmlStr); } //填充作答内容 if ($(".underlineContent[yaoshi-flag='" + answerid + "']").length == 1) { $(".underlineContent[yaoshi-flag='" + answerid + "']").css("display", "inline"); if (mytext == "" && !hasAudio) { mytext = "未作答"; if (isanswer) { mytext = "    "; 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 + "']").attr("data-errstatus", "0"); // 已作答 } 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 + "']").attr("data-errstatus", "1"); // 没有作答 } } else if (mytext == "" && hasAudio) { 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 + "']").attr("data-errstatus", "0"); // 已作答 } else { 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 != "BODY" && TFlag != null && (TFlag == "sentence" || TFlag == "phrase")) { PHandle.parent().attr("data-setstatus", "0").attr("data-lstatus", "0") WTrue = false; } PHandle = PHandle.parent() } while (WTrue); } else { // 直接高亮 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 != "BODY" && TFlag != null && TFlag == "sentence") { PHandle.parent().attr("data-setstatus", "1").attr("data-lstatus", "3"); WTrue = false; } else if (ClsName != "BODY" && 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] + ' ' + TText + ' ' + TNHtmlArr[1]; NHtmlStr = NHtmlStr.replace(TText, RHtml); } else if (TFlag == "phrase" && IndexVal > -1) { var TNHtmlArr = NHtmlStr.split(TText); var ThitCode = ""; if (aItem.HightCode != 'undefined' && aItem.HightCode != null && aItem.HightCode != "") { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } else { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } var RHtml = TNHtmlArr[0] + ' ' + TText + ' ' + TNHtmlArr[1]; NHtmlStr = NHtmlStr.replace(TText, RHtml); } else if (TFlag == "word" && IndexVal > -1) { var TNHtmlArr = NHtmlStr.split(TText); var ThitCode = ""; if (aItem.HightCode != 'undefined' && aItem.HightCode != null && aItem.HightCode != "") { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } else { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } var RHtml = TNHtmlArr[0] + ' ' + TText + ' ' + 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 { $(".underlineContent[yaoshi-flag='" + answerid + "']").html(NHtmlStr); } // 恢复多选处理 if (CheckFlag) { $(".cBoxCls[answer-id='" + answerid + "']").attr("data-status", "1"); } $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); } } else if ($(".underlineContent[yaoshi-flag='" + answerid + "']").length > 1) { $(".underlineContent[yaoshi-flag='" + answerid + "']").css("display", "inline"); if (mytext == "" && !hasAudio) { $(".underlineContent[yaoshi-flag='" + answerid + "']").html("").attr("showflag", "0"); // showflag在这里同来卡控半包含高亮 mytext = "未作答"; if (isanswer) { mytext = "    "; if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0) { $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").eq(0).html(mytext).attr("showflag", "1"); } else { $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(0).html(mytext).attr("showflag", "1"); } $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答 } else { if ($(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").length > 0) { $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range-child").eq(0).html(mytext).attr("showflag", "1"); } else { $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(0).html(mytext).attr("showflag", "1"); } $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "1"); } } else if (mytext == "" && hasAudio) { $(".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(mytext).attr("showflag", "1"); } else { $(".underlineContent[yaoshi-flag='" + answerid + "']").eq(0).html(mytext).attr("showflag", "1"); } $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答 } else { 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 != "BODY" && TFlag != null && (TFlag == "sentence" || TFlag == "phrase")) { PHandle.parent().attr("data-setstatus", "0").attr("data-lstatus", "0"); 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); if (TFlag == "sentence" && NHtmlStr.indexOf(TText) > -1) { var ThitCode = ""; if (aItem.HightCode != 'undefined' && aItem.HightCode != null && aItem.HightCode != "") { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } else { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } var RHtml = ''; 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 ThitCode = ""; if (aItem.HightCode != 'undefined' && aItem.HightCode != null && aItem.HightCode != "") { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } else { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } var RHtml = ''; 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 ThitCode = ""; if (aItem.HightCode != 'undefined' && aItem.HightCode != null && aItem.HightCode != "") { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } else { ThitCode = aItem.HightCode + "|" + aItem.SourceCode; } var RHtml = ''; 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(0).html(NHtmlStr); } } $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("data-errstatus", "0"); // 已作答 } } }); // 进行重新渲染答题点的高亮 DealCssShowFunc(); } } // 点击事件补充 AddClickEvent(); } //显示、隐藏钥匙及答案 isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 function showHideAnswerEx(isShowYX, isShowAS) { if (isShowYX) { $(".yaoshi").attr("showflag", "1").css("display", "block"); } else { $(".yaoshi").attr("showflag", "0").css("display", "none"); // 特殊处理:视听说学生端原文、传统教材都是没有钥匙的(直接隐藏掉) $(".underlineContent").find("*[showflag='1']").attr("showflag", "0"); $(".cBoxCls").attr("data-status", "0"); } if (isShowYX && isShowAS) { $(".yaoshi").attr("data-status", "1"); $(".yaoshi").attr("src", PicInfo.yaoshiShowImgUrl); $.each($(".yaoshi"), function (index, item) { // 显示答案 $(".underlineContent").attr("showflag", "1"); }); } else if (isShowYX && !isShowAS) { $(".yaoshi").attr("data-status", "0"); $(".yaoshi").attr("src", PicInfo.yaoshiHideImgUrl); $.each($(".yaoshi"), function (index, item) { // 隐藏答案 $(".underlineContent").attr("showflag", "0"); }); } DealCssShowFunc(); DealCssHiddenFunc(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 处理点击事件 // 统一添加点击事件 function AddClickEvent() { // 释放 $(".answer-body").unbind("click"); // 点击答案切换答案 $(".underlineContent").unbind("click"); // 绑定显示或隐藏答案 $(".yaoshi").unbind("click"); // 绑定高亮 $(".wordStyle").unbind("click"); $(".phraseStyle").unbind("click"); $(".sentenceStyle").unbind("click"); $(".sentImagcs").unbind("click"); // 绑定播放作答音频 $(".audioImg").unbind("click"); //点击播放事件,视频播放 $(".videoImg").unbind("click"); //作答录音播放按钮点击事件 $(".answer-audio-range").unbind("click"); // 重新绑定 // 绑定答题点 $(".answer-body").on("click", function () { var curObj = new Object(); curObj.Id = $(this).attr("answer-id");//答题点ID curObj.pId = $(this).attr("parent-anid");//答题点ID curObj.IsKY = $(this).attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题 curObj.Text = $(this).attr("answer-text");//用户作答内容 curObj.Score = $(this).attr("answer-score");//作答评分 curObj.AnsText = $(this).attr("answer-anstext");//参考答案 curObj.Comment = $(this).attr("answer-comment");//评语 // 选中样式渲染 $(".checkbox").removeClass("select-answer"); $(".answer-body").removeClass("select-answer"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(".cBoxClsBg").attr("data-select", "0"); if (curObj.pId == undefined || curObj.pId == null || curObj.pId == '' || curObj.pId == 'undefined') { $(".answer-body[answer-id=" + curObj.Id + "]").addClass("select-answer"); } else { $(".answer-body[parent-anid=" + curObj.pId + "]").addClass("select-answer"); } //已作答,弹出作答答案 if ($(this).data("ans-status") == "1") { //移动端添加外部处理 onClickAnswerPoint(JSON.stringify(curObj)); } else { //移动端添加外部处理,弹出作答操作 onClickAnswerPoint(JSON.stringify(curObj)); } }); // 点击答案切换答案 $(".underlineContent").on("click", function () { var showFlag = $(this).attr("showflag"); if (showFlag != "1") { return; } var answerID = $(this).attr("yaoshi-flag"); var parentID = $(".yaoshi[answer-id='" + answerID + "']").attr("parent-anid"); if (parentID == undefined || parentID == null || parentID == "undefined") { parentID = ''; } var answerIsky = $(".yaoshi[answer-id='" + answerID + "']").attr("answer-isky"); var answerText = $(".yaoshi[answer-id='" + answerID + "']").attr("answer-text"); var answerScore = $(".yaoshi[answer-id='" + answerID + "']").attr("answer-score"); var answerAnstext = $(".yaoshi[answer-id='" + answerID + "']").attr("answer-anstext"); var answerComment = $(".yaoshi[answer-id='" + answerID + "']").attr("answer-comment"); var curObj = new Object(); curObj.Id = answerID;//答题点ID curObj.pId = parentID;//答题点ID curObj.IsKY = answerIsky;//是否是口语试题,0-不是口语题,1-是口语题 curObj.Text = answerText;//用户作答内容 curObj.Score = answerScore;//作答评分 curObj.AnsText = answerAnstext;//参考答案 curObj.Comment = answerComment;//评语 // 选中样式渲染 var WType = "0"; if (answerText == "未作答" || answerText.length == 0) { WType = "2"; } else { WType = "1"; } $(".checkbox").removeClass("select-answer"); $(".answer-body").removeClass("select-answer"); $(".ULCBGUse").attr("data-select", "0"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); // 延迟渲染,防止重合 window.setTimeout(function () { if (curObj.pId == undefined || curObj.pId == null || curObj.pId == '' || curObj.pId == 'undefined') { $(".underlineContent[yaoshi-flag=" + curObj.Id + "]").parent(".ULCBGUse").attr("data-select", WType); if ($(".underlineContent[yaoshi-flag=" + curObj.Id + "]").length > 1) { $(".underlineContent[yaoshi-flag=" + curObj.Id + "]").first().parent(".ULCBGUse").css("border-radius", "5px 0px 0px 5px"); $(".underlineContent[yaoshi-flag=" + curObj.Id + "]").last().parent(".ULCBGUse").css("border-radius", "0px 5px 5px 0px"); } else { $(".underlineContent[yaoshi-flag=" + curObj.Id + "]").parent(".ULCBGUse").css("border-radius", "5px"); } } else { $(".underlineContent[parent-anid=" + curObj.pId + "]").parent(".ULCBGUse").attr("data-select", WType); $.each($(".underlineContent[parent-anid=" + curObj.pId + "]"), function () { var iAnswerID = $(this).attr("yaoshi-flag"); if ($(".underlineContent[yaoshi-flag=" + iAnswerID + "]").length > 1) { $(".underlineContent[yaoshi-flag=" + iAnswerID + "]").first().parent(".ULCBGUse").css("border-radius", "5px 0px 0px 5px"); $(".underlineContent[yaoshi-flag=" + iAnswerID + "]").last().parent(".ULCBGUse").css("border-radius", "0px 5px 5px 0px"); } else { $(".underlineContent[yaoshi-flag=" + iAnswerID + "]").parent(".ULCBGUse").css("border-radius", "5px"); } }); } }, 100); //已作答,弹出作答答案 if ($(this).data("ans-status") == "1") { //移动端添加外部处理 onClickAnswerPoint(JSON.stringify(curObj)); } else { //移动端添加外部处理,弹出作答操作 onClickAnswerPoint(JSON.stringify(curObj)); } }); // 绑定显示或隐藏答案 $(".yaoshi").on("click", function () { $(".ULCBGUse").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); var answerid = $(this).attr("answer-id"); var parentanid = $(this).attr("parent-anid"); var datastatus = $(this).attr("data-status"); if (datastatus == "0") { // 隐藏->显示 $(this).attr("data-status", "1"); $(this).attr("src", PicInfo.yaoshiShowImgUrl); $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("showflag", "1"); // 处理多答题点 if (parentanid != undefined && parentanid != null && parentanid != '') { $(".yaoshi[parent-anid='" + parentanid + "']").attr("data-status", "1").attr("src", PicInfo.yaoshiShowImgUrl); $(".underlineContent[parent-anid='" + parentanid + "']").attr("showflag", "1"); } DealCssShowFunc(); } else if (datastatus == "1") { // 显示->隐藏 $(this).attr("data-status", "0"); $(this).attr("src", PicInfo.yaoshiHideImgUrl); $(".underlineContent[yaoshi-flag='" + answerid + "']").attr("showflag", "0"); // 处理多答题点 if (parentanid != undefined && parentanid != null && parentanid != '') { $(".yaoshi[parent-anid='" + parentanid + "']").attr("data-status", "0").attr("src", PicInfo.yaoshiHideImgUrl); $(".underlineContent[parent-anid='" + parentanid + "']").attr("showflag", "0"); } DealCssHiddenFunc(); } }); // 绑定高亮 $(".wordStyle").on("click", function () { $(".ULCBGUse").attr("data-select", "0"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(this).attr("data-glclick", "1"); var datalstatus = $(this).attr("data-lstatus"); if (datalstatus != "1") { return; // 不能点击 } hitCodeFunc($(this).attr("hitCode")); }); $(".phraseStyle").on("click", function () { $(".ULCBGUse").attr("data-select", "0"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(this).attr("data-glclick", "1"); var datalstatus = $(this).attr("data-lstatus"); if (datalstatus != "2") { return; // 不能点击 } hitCodeFunc($(this).attr("hitCode")); }); $(".sentenceStyle").on("click", function () { $(".ULCBGUse").attr("data-select", "0"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(this).attr("data-glclick", "1"); var datalstatus = $(this).attr("data-lstatus"); if (datalstatus != "3") { return; // 不能点击 } hitCodeFunc($(this).attr("hitCode")); }); $(".sentImagcs").on("click", function () { $(".ULCBGUse").attr("data-select", "0"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(this).next(".sentenceStyle").attr("data-glclick", "1"); var datalstatus = $(this).next(".sentenceStyle").attr("data-lstatus"); if (datalstatus != "3") { return; // 不能点击 } hitCodeFunc($(this).next(".sentenceStyle").attr("hitCode")); }); // 绑定播放作答音频 $(".audioImg").on("click", function () { $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); audioPlayClick(this); }); //点击播放事件,视频播放 $(".videoImg").on("click", function () { $(".select-answer").removeClass("select-answer"); $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(this).attr("audiourl", ""); var curHtml = $(this).parent().find(".videoUrl").html(); var curAlt = $(this).attr("alt");//播放视频地址 if (cTTypeFunc == 1) { playVisiableAudioCallBack(2, $(this).attr("alt")); } else { videoAudioClick("media:" + curAlt); } }); //作答录音播放按钮点击事件 $(".answer-audio-range").on("click", function () { $(".cBoxClsBg").attr("data-select", "0"); $(".wordStyle,.phraseStyle,.sentenceStyle").attr("data-glclick", "0"); $(".select-answer").removeClass("select-answer"); var AudioID = $(this).parent(".underlineContent").attr("yaoshi-flag"); var AudioUrl = $(this).attr("answer-url"); recordAudioClick(this, AudioID, AudioUrl); }); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 移动端统一调用:学生端视听说主体课文 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // data高亮知识点 function stuEntryFunc(sWidthVal, isAStatus, isMAStatus, data) { bindEventYS(sWidthVal, isAStatus, isMAStatus); if (cTTypeFunc == 2) { TFillData = JSON.parse(data); } else { TFillData = data; } var ReData = handleAnswerRange(); if (typeof (Fill) == "function") { Fill(TFillData); } // 最终样式渲染 DealCssHiddenFunc(); // 点击事件补充 AddClickEvent(); return ReData; } // 移动端统一调用:教师端视听说主体课文 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // data高亮知识点 // isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 function teaEntryFunc(sWidthVal, isAStatus, isMAStatus, data, isShowYX, isShowAS) { bindEventYS(sWidthVal, isAStatus, isMAStatus); if (cTTypeFunc == 2) { TFillData = JSON.parse(data); } else { TFillData = data; } if (typeof (Fill) == "function") { Fill(TFillData); } // 最终样式渲染 DealCssHiddenFunc(); // 点击事件补充 AddClickEvent(); showHideAnswerEx(isShowYX, isShowAS); } // 移动端统一调用:教师/学生端视听说原文 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 function aYWFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS) { bindEventTeaOrignalYS(sWidthVal, isAStatus, isMAStatus); // 最终样式渲染 DealCssHiddenFunc(); // 点击事件补充 AddClickEvent(); showHideAnswerEx(isShowYX, isShowAS); } // 移动端统一调用:学生端传统教材 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 function stuCTJCFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS) { aCTJCFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS); } // 移动端统一调用:教师端传统教材 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 function teaCTJCFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS) { aCTJCFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS); } // 移动端统一调用:教师/学生端传统教材 // sWidthVal:屏幕宽度,isAStatus是否含有作答0表示没有,isMAStatus判断是否是主体课文1表示是 // isShowYX:显示和隐藏钥匙,isShowAS:显示和隐藏答案 // data高亮知识点 var Iindex = 0; function aCTJCFunc(sWidthVal, isAStatus, isMAStatus, isShowYX, isShowAS, data) { bindEventYS(sWidthVal, isAStatus, isMAStatus); if (cTTypeFunc == 2) { TFillData = JSON.parse(data); } else { TFillData = data; } //if (data == null || data == "") { // addFillAssist(); //} //else if (typeof (Fill) == "function") { Fill(TFillData); } // 最终样式渲染 DealCssHiddenFunc(); // 点击事件补充 AddClickEvent(); showHideAnswerEx(isShowYX, isShowAS); } // 高亮调用统一接口(data传递高亮文本) function FillFunc(data) { if (cTTypeFunc == 2) { TFillData = JSON.parse(data); } else { TFillData = data; } Fill(TFillData); // 最终样式渲染 DealCssShowFunc(); DealCssHiddenFunc(); // 点击事件补充 AddClickEvent(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 移动端使用,true:表示点击表格且正在移动,需阻止模块切换 function getPressFlag() { return pressTableFlag; } // 音频进度条松开回调 function mobileTEFunc(ID) { pressTableFlag = false; var CurrentTime = parseInt($(".LDFPWhite_" + ID).attr("data-ctime")); // 当前滑动的时间进度 var jQStr = ".LDFPlayS_" + ID; var AudioUrl = $(jQStr).parent().prev(".LDivTop").find(".LDivTItem[data-selected='1']").attr("data-auduourl"); // 路径 if (cTTypeFunc == 1) { // 移动端回调处理(安卓) plugin.onSeekBarUp(ID, CurrentTime, AudioUrl); } else { // 移动端回调处理(iOS) var curObj = new Object(); curObj.Id = ID;//答题点ID curObj.State = 1; curObj.AudioUrl = AudioUrl; curObj.CurrentTime = CurrentTime; cancelBubble(); alert("jsSlider:" + JSON.stringify(curObj)); } } // 音频进度条按下回调 function mobileTSFunc(ID) { pressTableFlag = true; if (cTTypeFunc == 1) { // 移动端回调处理(安卓) plugin.onSeekBarDown(ID); } else { // 移动端回调处理(iOS) var curObj = new Object(); curObj.Id = ID;//答题点ID curObj.State = 0; cancelBubble(); alert("jsSlider:" + JSON.stringify(curObj)); } } // 控制字体大小 function adjustFontSize(FontSize) { if (FontSize == null || FontSize < 80) { return; } $(".LDFTimerS").attr("data-fsFlag", FontSize); $(".TableContainer").attr("data-fsFlag", FontSize); } function playVisiableAudioCallBack(type, url) { //console.log(url); cancelBubble(); if (cTTypeFunc == 1) { plugin.startPlay(type, url); } else { alert("jsmedia:" + url); } } // 答题点选择调移动端接口 function onClickAnswerPoint(data) { if (cTTypeFunc == 1) { //alert(JSON.stringify(data)); console.log(JSON.stringify(data)); //cancelBubble(); plugin.onClickAnswerPoint(data); } else { cancelBubble(); alert(data); } } function onClickKeyHide() { cancelBubble(); if (cTTypeFunc == 1) { plugin.onClickKeyHide(); } else { alert("yaoshi-control-hide"); } } function onClickKeyShow() { cancelBubble(); if (cTTypeFunc == 1) { plugin.onClickKeyShow(); } else { alert("yaoshi-control-show"); } } function cancelBubble(e) { var evt = e ? e : window.event; if (evt.stopPropagation) { //W3C evt.stopPropagation(); } else { //IE evt.cancelBubble = true; } } function getSelectedText(title) { var txt; if (window.getSelection) { txt = window.getSelection().toString(); } else if (window.document.getSelection) { txt = window.document.getSelection().toString(); } else if (window.document.selection) { txt = window.document.selection.createRange().text; } JSInterface.callback(txt, title); } // 控制播放按钮样式,OCStatus(0表示停止,1表示播放) function playCssControl(iIndex, OCStatus) { var jQStr = ".LDFPlayS_" + iIndex; if (OCStatus == "0") { $(jQStr).attr("data-playstatus", 0); } else { $(jQStr).attr("data-playstatus", 1); } } // 控制滑块接口(Id第几个音频,leftVal进度条实时时间(毫秒),allTimes表示总时间(毫秒)) function showImageFunc(Id, leftVal, allTimes) { playImageFunc(Id, leftVal, allTimes); } // 暂停所有的样式 function StopAllCss() { $.each($(".LDFPlayS"), function (index, item) { $(this).attr("data-playstatus", "0"); }); }; //处理播放录音,answerid:答题点ID,isPlay:是否播放(0-暂停,1-播放) function playRecordAudio(answerid, isPlay) { //获取其他正在播放的音频 var playing = $(".answer-body[answer-id='" + answerid + "']").children(".answer-audio-range"); if (playing.length > 0) { if (isPlay == "1") { $(playing).attr("play-status", "1"); $(playing).find("img").attr("src", PicInfo.recordPauseImgUrl);//移动端要根据本地路径替换 } else { $(playing).attr("play-status", "0"); $(playing).find("img").attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地路径替换 } } else { if (isPlay == "1") { $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range").attr("play-status", "1"); $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range").find("img").attr("src", PicInfo.recordPauseImgUrl);//移动端要根据本地路径替换 } else { $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range").attr("play-status", "0"); $(".underlineContent[yaoshi-flag='" + answerid + "']").find(".answer-audio-range").find("img").attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地路径替换 } } } //滚动到相应DIV function scrollAnswer(answerid) { //console.log(answerid); $(".cBoxClsBg").attr("data-select", "0"); $(".ULCBGUse").attr("data-select", "0"); $(".answer-body").removeClass("select-answer"); var ansDom = $(".answer-body[parent-anid='" + answerid + "']"); if (ansDom.length == 0) { ansDom = $(".cBoxCls[parent-anid='" + answerid + "']"); if (ansDom.length == 0) { ansDom = $(".underlineContent[parent-anid='" + answerid + "']"); var TanswerText = ""; $.each($(".underlineContent[parent-anid=" + answerid + "]"), function () { TanswerText += $(this).text(); }); var WType = "0"; console.log(TanswerText); if (TanswerText == "未作答" || TanswerText.length == 0) { WType = "2"; } else { WType = "1"; } $(".underlineContent[parent-anid=" + answerid + "]").parent(".ULCBGUse").attr("data-select", WType); if ($(".underlineContent[parent-anid=" + answerid + "]").length > 1) { $(".underlineContent[parent-anid=" + answerid + "]").first().parent(".ULCBGUse").css("border-radius", "5px 0px 0px 5px"); $(".underlineContent[parent-anid=" + answerid + "]").last().parent(".ULCBGUse").css("border-radius", "0px 5px 5px 0px"); } else { $(".underlineContent[parent-anid=" + answerid + "]").parent(".ULCBGUse").css("border-radius", "5px"); } } else { $(ansDom).parent(".cBoxClsBg").attr("data-select", "1"); } } else { $(ansDom).addClass("select-answer"); } var scroll_offset = $(ansDom).offset(); //得到box这个div层的offset,包含两个值,top和left var offset_top = scroll_offset.top; if (offset_top > 150) { offset_top = offset_top - 200; } $("body,html").animate({ scrollTop: offset_top //让body的scrollTop等于pos的top,就实现了滚动 }); } //暂停播放原文音频 function pauseTextAudio(audioid) { //获取其他正在播放的音频 var playing = $(".audioImg[audio-id='" + audioid + "']"); if (playing.length > 0) { $(playing).attr("play-status", "0"); $(playing).attr("src", PicInfo.audioPauseImgUrl);//移动端要根据本地 喇叭 路径替换 } } function playTextAudio(audioID) { //获取其他正在播放的音频 var playing = $(".audioImg[audio-id='" + audioID + "']"); if (playing.length > 0) { $(playing).attr("play-status", "1"); $(playing).attr("src", PicInfo.audioPlayImgUrl);//移动端要根据本地 喇叭 路径替换 } } // 点击高亮调移动端 function hitCodeFunc(code) { //cancelBubble(); if (cTTypeFunc == 1) { plugin.call(code); } else { alert(code); } } // 设置离焦事件 function resetPressFlag() { pressTableFlag = false; } //作答录音播放按钮点击事件 function recordAudioClick(myobj, id, url) { $(".select-answer").removeClass("select-answer"); $(".ULCBGUse").attr("data-select", "0"); $(myobj).parent(".underlineContent").parent(".ULCBGUse").attr("data-select", "1"); $(myobj).parent().parent("answer-body").addClass("select-answer"); //处理当前按钮的状态 if ($(myobj).attr("play-status") == "0") { //停止其他作答音频播放 var isRecordPlaying = $(".answer-audio-range[play-status='1']"); if (isRecordPlaying.length > 0) { $(isRecordPlaying).attr("play-status", "0"); $(isRecordPlaying).find("img").attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地路径替换 } //停止其他原文音频播放 var audioPlaying = $(".audioImg[play-status='1']"); if (audioPlaying.length > 0) { $(audioPlaying).attr("play-status", "0"); $(audioPlaying).attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地 喇叭 路径替换 } //设置播放状态 $(myobj).attr("play-status", "1"); $(myobj).find("img").attr("src", PicInfo.recordPauseImgUrl);//移动端要根据本地路径替换 } else { $(myobj).attr("play-status", "0"); $(myobj).find("img").attr("src", PicInfo.recordPlayImgUrl);//移动端要根据本地路径替换 } if (cTTypeFunc == 1) { //移动端添加外部处理,播放录音(安卓) var info = new Object(); info.Id = id; info.AudioUrl = url; //移动端添加外部处理,播放录音 playVisiableAudioCallBack(3, JSON.stringify(info)); } else { //移动端添加外部处理,播放录音(iOS) cancelBubble(); alert("media:" + "1" + "℡№℡" + id + "℡№℡" + url); } } function videoAudioClick(data) { cancelBubble(); alert(data); } function topHeight(id) { var _top = 0; var input = document.getElementById(id); // 根据ID取得元素对象 while (input != null) { _top += input.offsetTop; input = input.offsetParent; } return _top; } function showStyleColor(index) { var node = document.getElementById(index); node.style = "color:rgba(0,153,0,1)"; } function hideStyleColor(index) { var node = document.getElementById(index); node.style = "color:rgba(0,153,0,0)"; } //function Running() { // window.setTimeout(function () { // $("#STIDStr").remove(); // //$(this).after('
display:' + $(this).css("display") + "=>showflag:" + $(this).attr("showflag") + '
'); // $("p").eq(0).after('
'); // var TStr = $("#STIDStr").text() + "=>Running"; // $("#STIDStr").text(TStr); // }, 500); //} //Running();