この質問は、my last question about "too much recursion" errors in jQueryに似ていますが、ライブハンドラが関係しています。私は別の要素の中に一つの要素を持っている。どちらも同じ名前のカスタムイベントハンドラを持っています。外側の要素には従来のハンドラがあり、内側の要素にはライブハンドラがあります。外部要素でイベントをトリガーしようとすると、しばらくブラウザが一時停止し、「再帰が多すぎます」というエラーが表示されます。jQuery 1.3.2のライブハンドラで「再帰が多すぎます」エラー
私は、ハンドラ関数内でfalseを返すことによってライブハンドラのバブリングを防ぐことができることを読んだ。live handler documentation pageしかし、私はこれを試して、それは違いを生じさせるようではありません。いずれにしても、一度しかコールしようとしないと、何度も何度も外部関数が呼び出されるようです。
どうすればこの問題を解決できますか?このような名前のハンドラを持つことは可能でしょうか、別の名前を考えなければなりませんか?このコードを使用して問題をテストできます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>live event handler test</title>
</head>
<body>
<div id="outer">
<div id="inner">
</div>
</div>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$("#outer").bind("test", function() {
$("#inner").trigger("test");
});
$("#inner").live("test", function() {
return false;
});
$(function() {
$("#outer").trigger("test");
});
</script>
</body></html>
完璧なテストケース。 –