/*高亮文本标注*/ function Fill(data) { var highlightArr = []; clearHighlight(); //data = JSON.parse(data); $.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) { var hitCode = highlightItem.attr('hitCode'); if (hitCode) { highlightItem.attr('hitCode', hitCode + "|" + item.SourceCode); } else { highlightItem.attr('hitCode', item.SourceCode); } highlightArr.push(highlightItem); } } else if (typeof (item.SourceCode) == 'undefined' || item.SourceCode == null || item.SourceCode != "") { var highlightItem = $('span[kcode*=' + item.SourceCode + ']:first'); if (highlightItem.length > 0) { var hitCode = highlightItem.attr('hitCode'); if (hitCode) { highlightItem.attr('hitCode', hitCode + "|" + item.SourceCode); } else { highlightItem.attr('hitCode', item.SourceCode); } highlightArr.push(highlightItem); } } $.each(highlightArr, function (i, item) { if (item.attr('flag') == 'word') { // data-scolor显示的颜色等级卡控,data-setstatus高亮是否处于显示状态,data-lstatus:卡控是否能点击(1单词,2短语,3句型) // 附加默认所有高亮都可见.attr("showflag", "1") bindEvent(item.attr('iskeyklg', 'true').attr("data-setstatus", "0").attr("showflag", "1").attr("data-scolor", cHPhraseStyleFunc(item)).addClass('wordStyle'), true); } else if (item.attr('flag') == 'phrase') { bindEvent(item.attr('iskeyklg', 'true').attr("data-setstatus", "0").attr("showflag", "1").addClass('phraseStyle'), true); } else if (item.attr('flag') == 'sentence') { if (item.attr('iskeyklg') == 'true') return; bindEvent(item.attr('iskeyklg', 'true').attr("data-setstatus", "0").attr("showflag", "1").addClass('sentenceStyle') .before(''), true); } }); }); // 绑定横线内处理 if (typeof (addFillAssist) == "function") { addFillAssist(); } adjustFillFunc(7); } function clearHighlight() { $('span.klg-selected').removeClass('klg-selected'); $('span[iskeyklg="true"]').each(function (i, item) { $(item).removeAttr('hitCode'); $(item).attr('iskeyklg', 'false'); if ($(item).attr('flag') == 'word') { $(item).removeClass('wordStyle').unbind(); } else if ($(item).attr('flag') == 'phrase') { $(item).removeClass("phraseStyle").unbind(); } else if ($(item).attr('flag') == 'sentence') { $(item).removeClass('sentenceStyle').unbind(); $(item).prev().filter('img.sentImagcs').remove(); } }) } function bindEvent(ele, opt) { if (opt) { var className = ''; if (ele.hasClass('phraseStyle')) className = 'phraseStyle'; else if (ele.hasClass('wordStyle')) className = 'wordStyle'; else if (ele.hasClass('sentenceStyle')) className = 'sentenceStyle'; switch (className) { case 'phraseStyle': ele.unbind().bind({ 'click': function (e) { $(".wordStyle[data-nowclick='1'],.phraseStyle[data-nowclick='1'],.sentenceStyle[data-nowclick='1'],.sentImagcs[data-nowclick='1']").attr("data-nowclick", "0"); ele.attr("data-nowclick", "1"); // 正在点击 //plugin.call(code); //alert($(this).attr("hitCode")); if (ele.attr("data-lstatus") == "2") { return; } runSPropagation(ele); e.stopPropagation(); var sHCode = $(this).attr("shcode"); if (sHCode != undefined && sHCode == 1) { test($(this).attr("hitCode")); } else if (sHCode == undefined) { test($(this).attr("hitCode")); } } }); break; case 'wordStyle': ele.unbind().bind({ 'click': function (e) { $(".wordStyle[data-nowclick='1'],.phraseStyle[data-nowclick='1'],.sentenceStyle[data-nowclick='1'],.sentImagcs[data-nowclick='1']").attr("data-nowclick", "0"); ele.attr("data-nowclick", "1"); // 正在点击 //plugin.call(code); //alert($(this).attr("hitCode")); if (ele.attr("data-lstatus") == "1") { return; } runSPropagation(ele); e.stopPropagation(); var sHCode = $(this).attr("shcode"); if (sHCode != undefined && sHCode == 1) { test($(this).attr("hitCode")); } else if (sHCode == undefined) { test($(this).attr("hitCode")); } } }); break; case 'sentenceStyle': ele.unbind().bind({ 'click': function (e) { $(".wordStyle[data-nowclick='1'],.phraseStyle[data-nowclick='1'],.sentenceStyle[data-nowclick='1'],.sentImagcs[data-nowclick='1']").attr("data-nowclick", "0"); ele.attr("data-nowclick", "1"); // 正在点击 ele.next(".sentenceStyle").attr("data-nowclick", "1"); // 正在点击 //plugin.call(code); //alert($(this).attr("hitCode")); if (ele.attr("data-lstatus") == "3") { return; } runSPropagation(ele); e.stopPropagation(); var sHCode = $(this).attr("shcode"); if (sHCode != undefined && sHCode == 1) { test($(this).attr("hitCode")); } else if (sHCode == undefined) { test($(this).attr("hitCode")); } } }).prev().filter('.sentImagcs').unbind().bind({ 'click': function (e) { $(".wordStyle[data-nowclick='1'],.phraseStyle[data-nowclick='1'],.sentenceStyle[data-nowclick='1'],.sentImagcs[data-nowclick='1']").attr("data-nowclick", "0"); ele.attr("data-nowclick", "1"); // 正在点击 ele.next(".sentenceStyle").attr("data-nowclick", "1"); // 正在点击 //plugin.call(code); //alert($(this).attr("hitCode")); if (ele.attr("data-lstatus") == "3") { return; } runSPropagation(ele); e.stopPropagation(); var sHCode = $(this).attr("shcode"); if (sHCode != undefined && sHCode == 1) { test($(this).next().attr("hitCode")); } else if (sHCode == undefined) { test($(this).next().attr("hitCode")); } } }); break; } } else { ele.unbind(); } } // #region // 判断显示层级:0表示最外层;1表示在underlineContent里面;2表示在phraseStyle里面;5表示在underlineContent且phraseStyle在underlineContent里面,7表示在phraseStyle且underlineContent在phraseStyle里面 function cHPhraseStyleFunc(element) { var ReNumber = 0; var wFlag=true; while (wFlag) { var ClsName = $(element).attr("class"); if ($(element).parent() == null || $(element)[0].tagName.toUpperCase() == "BODY") { wFlag = false; return ReNumber; } else if (ClsName != undefined && ClsName.indexOf("phraseStyle") > -1) { wFlag = false; ReNumber += 1; } else if (ClsName != undefined && ClsName.indexOf("underlineContent") > -1) { wFlag = false; ReNumber += 2; } element = $(element).parent(); }; wFlag = true; while (wFlag) { var ClsName = $(element).attr("class"); if ($(element).parent() == null || $(element)[0].tagName.toUpperCase() == "BODY") { wFlag = false; return ReNumber; } else if (ClsName != undefined && ClsName.indexOf("phraseStyle") > -1) { wFlag = false; ReNumber += 3; return ReNumber; } else if (ClsName != undefined && ClsName.indexOf("underlineContent") > -1) { wFlag = false; ReNumber += 5; return ReNumber; } element = $(element).parent(); }; return ReNumber; } // 添加高亮新调用处理(1:单词;2:短语;4:句型) var fillDataNum = 0; function adjustFillFunc(DataNum) { fillDataNum = DataNum; switch (DataNum) { case 0: $(".wordStyle").attr("data-setstatus", "0").attr("data-lstatus", "1"); $(".phraseStyle").attr("data-setstatus", "0").attr("data-lstatus", "2"); $(".sentenceStyle").attr("data-setstatus", "0").attr("data-lstatus", "3"); $(".sentImagcs").attr("data-setstatus", "0").attr("data-lstatus", "3"); break; case 1: $(".wordStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".phraseStyle").attr("data-setstatus", "0").attr("data-lstatus", "2"); $(".sentenceStyle").attr("data-setstatus", "0").attr("data-lstatus", "3"); $(".sentImagcs").attr("data-setstatus", "0").attr("data-lstatus", "3"); break; case 2: $(".wordStyle").attr("data-setstatus", "0").attr("data-lstatus", "1"); $(".phraseStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentenceStyle").attr("data-setstatus", "0").attr("data-lstatus", "3"); $(".sentImagcs").attr("data-setstatus", "0").attr("data-lstatus", "3"); break; case 3: $(".wordStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".phraseStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentenceStyle").attr("data-setstatus", "0").attr("data-lstatus", "3"); $(".sentImagcs").attr("data-setstatus", "0").attr("data-lstatus", "3"); break; case 4: $(".wordStyle").attr("data-setstatus", "0").attr("data-lstatus", "1"); $(".phraseStyle").attr("data-setstatus", "0").attr("data-lstatus", "2"); $(".sentenceStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentImagcs").attr("data-setstatus", "1").attr("data-lstatus", "0"); break; case 5: $(".wordStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".phraseStyle").attr("data-setstatus", "0").attr("data-lstatus", "2"); $(".sentenceStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentImagcs").attr("data-setstatus", "1").attr("data-lstatus", "0"); break; case 6: $(".wordStyle").attr("data-setstatus", "0").attr("data-lstatus", "1"); $(".phraseStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentenceStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentImagcs").attr("data-setstatus", "1").attr("data-lstatus", "0"); break; case 7: $(".wordStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".phraseStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentenceStyle").attr("data-setstatus", "1").attr("data-lstatus", "0"); $(".sentImagcs").attr("data-setstatus", "1").attr("data-lstatus", "0"); break; default: break; }; // 处理不显示高亮 if (typeof (dealNotShowFill) == "function") { dealNotShowFill(); } dealJXQTFunc(); dealRecvHSFill(); if (typeof (dealNSFillFunc) == "function") { dealNSFillFunc(); } } // #endregion function test(code) { //alert(code); cancelBubble(); plugin.call(code); } // 判断父级是否是答题点,是的话需要选中 function runSPropagation(ele) { var ClsName = $(ele).parent().attr("class"); if (ClsName != null && (ClsName.indexOf("answer-text") > -1 || ClsName.indexOf("answer-audio-text") > -1 || ClsName.indexOf("answer-point-text") > -1)) { // 调用选择答题点回显 var TElement = ""; if (ClsName.indexOf("answer-text") > -1) { TElement = $(ele).parent().parent(); } else if (ClsName.indexOf("answer-audio-text") > -1) { TElement = $(ele).parent().parent().parent().parent(); } else if (ClsName.indexOf("answer-point-text") > -1) { TElement = $(ele).parent().parent().parent(); } var curObj = new Object(); curObj.Id = TElement.attr("answer-id");//答题点ID curObj.pId = TElement.attr("parent-anid");//答题点ID curObj.IsKY = TElement.attr("answer-isky");//是否是口语试题,0-不是口语题,1-是口语题 curObj.Text = TElement.attr("answer-text");//用户作答内容 curObj.Score = TElement.attr("answer-score");//作答评分 curObj.AnsText = TElement.attr("answer-anstext");//参考答案 curObj.Comment = TElement.attr("answer-comment");//评语 curObj.pId = curObj.pId ? curObj.pId : curObj.Id;//组ID $(".checkbox").removeClass("select-answer"); $(".answer-body").removeClass("select-answer"); TElement.addClass("select-answer"); //已作答,弹出作答答案 if (TElement.data("ans-status") == "1") { //移动端添加外部处理 onClickAnswerPoint(JSON.stringify(curObj)); } else { //移动端添加外部处理,弹出作答操作 onClickAnswerPoint(JSON.stringify(curObj)); } } }