1

Twitter ブートストラップ モーダル ダイアログに Facebook ログイン ボタンをロードしようとしています。

$("a.fb-login, .modal a.fb-login").on("click", function(e) {
    e.preventDefault()
    FB.login(function(response) {
    // ...

これは、モーダル ダイアログの外側に配置されたボタンに対しては正常に機能しますが、要素がダイアログ内でレンダリングされる場合 (ブートボックスからトリガーされる)、リンクをクリックするとダイアログが消えるだけで、新しいウィンドウで Facebook ポップアップが起動されません。

// when 401 unauthorized
message = $("#login-form").clone();
bootbox.modal(message)
4

1 に答える 1

0

メソッドを呼び出すと、現在ページにある要素にのみリスナーが接続されていると思われますon()

リスナーを再アタッチせずに、新しく作成された要素でイベントを処理できるようにする場合は、リスナーをページ全体にアタッチしてみてください。ただし、セレクターを使用して、次のようにイベントをフィルター処理します。

$('body').on('click', 'a.fb-login, .modal a.fb-login', function(e) {
  e.preventDefault()
  FB.login(function(response) {
  // ...

明らかに、リスナーをアタッチする場所を絞り込むことは良い習慣です。

于 2012-07-14T00:29:40.907 に答える