问候。
我正在尝试通过优秀的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和return false都不会得到我想要的行为。我想我理解为什么,但我不知道如何制止它(我的jquery-foo很弱,我很害怕)
感谢您的建议。