1

ページのアンロード時に発生するイベントを要素に追加しようとしています。プライベート関数にアクセスする必要があるため、要素にイベントを添付したいと思います。

アンロード イベントを要素に追加してみて、window.unload イベント中にこの関数を呼び出すことにしました。これは、要素が通常アンロード イベントに渡されることがないためです。

悲しいことに、私は無限ループを作成することができました。ループを停止するために jQuery 関数 'one' を使用してみました。また、最初の呼び出しの後に unload even binding を手動で削除しようとしました。まだ運がありません。私は JsFiddle を作成しましたが、ブラウザがクラッシュするためリンクしないことに決めたので、ここにコードを示します。

<div id="myDiv"></div>
$('#myDiv').one('unload', function() { alert('Infinite loop incomming. Sorry :( '); });
$(window).unload(function() { $('#myDiv').unload(); });

誰でもアドバイスやより良い解決策を提供できますか?

4

1 に答える 1

1

別の質問 - Add jQuery function to specific elementsで探していたものを見つけました。

基本的に、jQuery の「バインド」と「トリガー」を使用してカスタム イベントを DOM 要素に追加し、後で呼び出すことができます。

例:

 <div id="myDiv"></div>

    $('#myDiv').bind('myUnloadFunction', function() { alert('No more loop :D'); });

    $(window).unload(function() { $('#myDiv').trigger('myUnloadFunction'); });
于 2012-07-03T16:08:45.317 に答える