我有这两个功能:
jQuery.fn.enterText = function(e){
if( $("#cursor").val() && e.keyCode != 32 ){
var character = $("#cursor").val();
$("#cursor").val("");
this.append("<span class = 'text'>"+character+"</span>");
$("#cursor").insertAfter(".text:last");
$("#cursor").focus();
}
};
jQuery.fn.markCursor = function(e){
$(this).focus();
$(this).keyup(function(e) {
$("#cursor-start").enterText(e);
});
};
我的问题是,如果快速输入文本,某些元素将包含多个字符,例如(abc)。我想知道如何以有效的方式限制一个字符,我想使用一个数组,但这不会太有效吗?
答案 0 :(得分:1)
这应该做:
character = character.split("").join("</span><span class='text'>");
this.append("<span class='text'>" + character + "</span>");
我建议在普通的JavaScript函数中更改一些JQuery函数:
document.getElementById("cursor-start")
受到普遍支持,因此请使用$("#cursor-start")
代替jQuery.fn.enterText = function(e){
var cursor = document.getElementById("cursor");
var character = cursor.value;
if(character && e.keyCode != 32){
cursor.value = "";
character = character.split("").join("</span><span class='text'>");
this.append("<span class = 'text'>"+character+"</span>");
$("#cursor").insertAfter(".text:last");
cursor.focus();
}
};
jQuery.fn.markCursor = function(e){
$(this).focus();
$(this).keyup(function(e) {
$("#cursor-start").enterText(e);
});
};
。优化代码:
{{1}}