2

我正在使用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]/时会出错,但我不确定。

有人有答案吗?

提前致谢。

4

0 回答 0