好吧,我正在构建一个在线源代码编辑器,我使用Snippet,一个jQuery插件来突出显示。所以,现在我有一个textarea和一个pre元素,我将textarea的值复制到每个keyup的pre ...所以我在document.ready()和每个keyup上调用函数.snippet()为了使语法突出显示。但我注意到,当我在同一个元素上多次调用它时,它将无法工作。在这里查看我的代码:http://jsfiddle.net/parisk/YkNMh/。 (它不会对keyup起作用,因为我在document.ready()上调用了一次,如果你在文件就绪上禁用了调用,那么它只能在第一个keyup上工作)......我真的很想解决这个问题。谢谢你的帮助!
答案 0 :(得分:0)
代码段插件用pre
包装<div>
元素,并根据您选择的代码样式为其添加一个类。
显然他们会使用这些来检查元素是否已经 snippet 'ed。
您需要撤消这些更改,在您的情况下,一个简单的解决方案是更改
$('pre').snippet("c",{style:"the",showNum:true});
到
$('pre').removeClass().unwrap().snippet("c",{style:"the",showNum:true});
答案 1 :(得分:0)
我遇到了同样的问题,尝试catch错误是:TypeError:$ .browser未定义。因此,在对JQuery进行一些阅读后,结果证明$ .browser在JQuery 1.9中已被删除。
要修复在JQuery链接(迁移插件)后添加此内容:
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
问题解决了,希望这有助于某人!