[英]How would I stop a live jquery event handler from firing more than once?
问候。
我正在尝试对通过出色的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;
});
解除绑定,stopPropagation或return false都不会得到我想要的行为。 我想我知道为什么,但是我不知道如何阻止它(恐怕我的jquery-foo很弱)
感谢您的建议。
你能做点什么..
if ( !$(this).data('writing') ) {
$(this).data('writing', 1);
// your function call that makes it invoke itself
$(this).data('writing', 0 );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.