当使用按键向上或鼠标按下事件在所选文本中查找相关标签时,我想要更改按钮样式
例如:
选择textArea内容:
[b]test[/b]
如果“value”属性为“b”,则使用keyup或mouseup事件更改按钮样式
模式:
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();
});
});
此部分用于检测模式列表中的标签并更改按钮样式
如何使用javascript中的keyup事件检查选择属性的天气和状态?
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');
}
}
}
感谢您的帮助:)