1

jQueryを使用して単純なpub/subパターンを実装したいと思います。だから私は親ページにこのようなコードを追加します:

親ページ:

$(document).bind('custom', function() { ... });

そして、私がこのように同じページでトリガーすると、それはうまく機能しています:

同じページ:

$(document).trigger('custom');  // Working.

しかし、ポップアップページでこれをトリガーすると、機能しません。

ポップアップページ:

opener.$(document).trigger('custom');  // Not working.
$(opener.document).trigger('custom');  // Not working.

イベントを<body>要素にバインドすると、検索が機能します。

親ページ:

$('body').bind('custom', function() { ... });

ポップアップページ:

opener.$('body').trigger('custom');  // Working.

バインドがdocumentポップアップで機能しないのはなぜですか?

4

2 に答える 2

2

@ 11684が言ったように、それを機能させるための答えは次のとおりです。

opener.$(opener.document).trigger('custom');

@Roryの答え:

$(opener.document).trigger('custom');

ポップアップ$にはのイベントハンドラがないため、は機能していませんopener.document

そしてこれ:

opener.$(document).trigger('custom');

documentはポップアップであるため、は機能していません。そのため、はとはdocument異なりopener.documentます。

そして最後に、

opener.$('body').trigger('custom');

オープナー$にはイベントハンドラーがあり、argument(body)は単なる文字列(のようなオブジェクトではない)であるため、は機能していますdocument

于 2012-12-12T10:25:28.490 に答える
0

opener.document全体をjQueryオブジェクトに配置する必要があります。ポップアップでこれを試してください:

$(opener.document).trigger('custom'); 
于 2012-12-12T09:13:51.947 に答える