我正在使用Jason Frame 的 Grab Bag中的 unscramble 插件。
但它似乎只适用于没有格式的文本。我希望文本格式保持不变。
示例:http: //jsfiddle.net/G6BdX/
解读插件:
$.fn.unscramble = function() {
this.each(function() {
var $ele = $(this), str = $ele.text(), replace = /[^\s]/,
state = [], choose = [], reveal = 25, random = randomAlphaNum;
for (var i = 0; i < str.length; i++) {
if (str[i].match(replace)) {
state.push(random());
choose.push(i);
} else {
state.push(str[i]);
}
}
shuffle(choose);
$ele.text(state.join(''));
var timer = setInterval(function() {
var i, r = reveal;
while (r-- && choose.length) {
i = choose.pop();
state[i] = str[i];
}
for (i = 0; i < choose.length; i++) state[choose[i]] = random();
$ele.text(state.join(''));
if (choose.length == 0) clearInterval(timer);
}, 100);
});
return this;
};
正如您所看到的,当按下“Unscramble me”时,文本格式和<br>标签被删除。
由于本人制作jQuery插件的技术欠缺,不知道是什么问题。我认为替换/[^\s]/时会出错,但我不确定。
有人有答案吗?
提前致谢。