问候语。
我试图对通过优秀的SyntaxHighlighter项目添加到DOM中的内容进行后期处理。
当SH格式化文本时,它会生成一堆HTML,然后将这些HTML写入DOM。它创建了一个类为“syntaxhighlighter”的div。
我想要监听这些新div的插入,当它们被插入时,我想要操作一些html,然后用这个新的html覆盖dom中的html。
我的问题是,当我将这个新的html写回dom时,它会重新触发一开始触发处理程序的事件,因此我陷入了浏览器终止递归的困境。
这是我到目前为止得到的。。。
$('div.syntaxhighlighter').live('DOMNodeInserted', function(event){
//console.log(event);
var input = event.target.innerHTML;
var newInput = input.replace(/(dbo\..*?)(\(|\s)/ig,"<a href='?obj=$1'>$1</a>$2");
$(event.target).unbind();
event.stopPropagation();
$(event.target).html(newInput);
return false;
});
unbind、stopPropagation和returnfalse都不会得到我想要的行为。我想我知道为什么,但我不知道如何阻止它(我的jqueryfoo很弱,我害怕)
谢谢你的建议。