我希望在所选文本中检测变量相关标签按钮样式的标签
这项工作我正在使用key up事件并在tagController函数中发送textArea内容以检测所选文本中的标签
但它无法正常工作......
模式:
var selMark = [
"\\[b\\](.*?)\\[\\/b\\]",
"\\[p\\](.*?)\\[\\/p\\]"
];
tagController插件:
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');
}
}
感谢您的帮助:)