1

以下のアップデートを参照してください

これが私のコードです:

$(document).on('click', '#btnClose, .ui-dialog-titlebar-close', function () {
    alert('test');
});

をクリックすると起動しますが、右上隅にあるjQuery UI#btnCloseの閉じるボタンは起動しません。

私もそれをひっくり返してみましたが、同じ結果が得られました。

$(document).on('click', '.ui-dialog-titlebar-close, #btnClose', function () {});

jQuery UI の閉じるボタンの HTML は次のとおりです。

<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close">
    <span class="ui-button-icon-primary ui-icon ui-icon-close"></span>
    <span class="ui-button-text">close</span>
</button>

updateボタンは iframe にあります。これが問題に違いありません。クリエイティブなアイデアはありますか?

これが私が現在持っているものです:

       function closeDialog() {
           alert('Closing');
               //this works fine
       }

       $(document).on('click', '#btnClose', function () {
           closeDialog()
               //this never fires
       });

       window.parent.$(document).on('click', '.ui-dialog-titlebar-close', function () {
           closeDialog();
       });

2番目のものはまだ機能していません。スクリプトは iFrame の一部であるため、親からセレクターにアクセスする必要があることに注意してください。奇妙な部分は、 window.parent.$() を使用して他のことを問題なく行っていることです。

4

4 に答える 4

1

これはクレイジーですが、機能します。

$('#btnClose').add(parent.$('.ui-dialog-titlebar-close')).on('click', function () {
    closeDialog();
});
于 2013-08-29T20:30:00.703 に答える
0

元のコードに閉じ丸括弧がありません。JS は括弧に非常に敏感です。括弧がないと、呼び出しが正しくなくなり、コードが機能しなくなります。私はあなたのコードを修正しました:

$(document).on('click', '#btnClose, .ui-dialog-titlebar-close', function () {
    alert('test');
});

同じことがコードの 2 番目のビットにも当てはまります。

$(document).on('click', '.ui-dialog-titlebar-close, #btnClose', function () {}
);

どちらの場合も、.on機能するパラメーターは 3 つあります。2 つの文字列とコールバック関数です。

コピー/貼り付けエラーである可能性がありますが、それが問題の「原因」である可能性があります。

于 2013-08-29T19:29:16.220 に答える