我可以在任何代码块上使Prettify工作吗?没有班级漂亮的印刷品?

时间:2010-07-31 02:12:57

标签: javascript

我正在使用prettify,我想知道我是否可以将其与任何code块一起使用,而不需要prettyprint类。

否则,我如何动态地附加类prettyprint,也许使用jquery。我想要实现的是类似于堆栈溢出,其中在编辑器中键入的代码将在预览和输出中“非常打印”。

我试过

$("#main").delegate("code", "ready", function() {
    // this does not seem to run at all?
    // intending to add the prettyprint class here
});

2 个答案:

答案 0 :(得分:2)

$(document).ready(function(){ $('code').addClass('prettyprint'); });
    当DOM准备就绪时,
  • $(document).ready(<func>)运行<func>
  • $('code')选择所有代码标记。
  • .addClass()将指定的类添加到传递的任何元素中(在本例中为所有code标记)。

答案 1 :(得分:0)

我不认为delegate()在这里是必要的。您只需要不时执行prettyPrint()来评估预览。一种解决方案可能是使用setInterval在每x秒后应用Prettify。这是一个简单的例子:

$('textarea').bind('keyup', function(e) {
    val = this.value.replace(/<code>/gi, '<code class="prettyprint">');
    $('#preview').html(val);
});
setInterval(function(){ prettyPrint(); }, 10000);

这将每10秒执行一次prettyPrint()。这不是我称之为完美的东西,但我认为它符合你的要求。如果用户在一段时间内没有输入任何内容,您可能还想清除间隔,但我希望这足以让您朝着正确的方向前进。