1

我想检测选定文本中的标签以更改相关的标签按钮样式

对于这项工作,我正在使用按键事件并在 tagController 函数中发送 textArea 内容以检测所选文本中的标签

但它不能正常工作......

模式:

   var selMark = [
"\\[b\\](.*?)\\[\\/b\\]",
"\\[p\\](.*?)\\[\\/p\\]"
];

标签控制器插件:

jQuery.fn.extend({

tagController : function(){

    if(document.selection){
            this.focus();
            sel = document.selection.createRange();

            for(i=0; i<selMark.length; i++){
             tag = selMark[i].substring(3,1).replace("[","").toUpperCase();
             if((new RegExp(selMark[i],"gi")).test(sel.text)){
                if(!$("input.tag[value="+tag+"]").hasClass('active')){
                $("input.tag[value="+tag+"]").addClass('active');
                }
             }else{
                $("input.tag[value="+tag+"]").removeClass('active');
                 }
            }
        }else if(this.selectionStart || this.selectionStart == '0'){
            this.focus();
            var startPos = this.selectionStart, endPos = this.selectionEnd;
            sel = this.value.substring(startPos, endPos);
            for(i=0; i<selMark.length; i++){
             tag = selMark[i].substring(3,1).replace("[","").toUpperCase();
             if((new RegExp(selMark[i],"gi")).test(sel)){
                if(!$("input.tag[value="+tag+"]").hasClass('active')){
                $("input.tag[value="+tag+"]").addClass('active');
                }
             }else{
                $("input.tag[value="+tag+"]").removeClass('active');
                 }
            }
    }

    } });

用法 :

$(function(){
 var source  = $('#txt');   
   source.keyup(function(){
     source.tagController();
     });
});

本节用于检测模式列表中的标签并更改按钮样式

for(i=0; i<selMark.length; i++){
             tag = selMark[i].substring(3,1).replace("[","").toUpperCase();
             if((new RegExp(selMark[i],"gi")).test(sel)){
                if(!$("input.tag[value="+tag+"]").hasClass('active')){
                $("input.tag[value="+tag+"]").addClass('active');
                }
             }else{
                $("input.tag[value="+tag+"]").removeClass('active');
                 }
            }

谢谢你的帮助 :)

4

0 回答 0