javascript - Bootbox 模式中的链接不可点击

标签 javascript facebook modal-dialog twitter-bootstrap

我正在尝试在 Twitter Bootstrap 模式对话框中加载 Facebook 登录按钮:

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

这对于放置在模式对话框外部的按钮效果很好,但是当元素在对话框中呈现时(从 Bootstrap 箱触发),单击链接只会使对话框消失,而不是在新窗口中启动 Facebook 弹出窗口:

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

最佳答案

我怀疑当您调用 on() 方法时,监听器仅附加到当前页面上的元素。

如果您希望能够处理新创建的元素上的事件,而不必重新附加监听器,请尝试将监听器附加到整个页面,但使用选择器来过滤掉事件,如下所示:

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

显然,缩小监听器的附加位置是一个很好的做法。

关于javascript - Bootbox 模式中的链接不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10179495/

相关文章:

ios - 如何像 facebook 应用程序一样快速滑动错误消息?

javascript - 简单模态不会显示

javascript - 为什么这些日期从 MongoDb 获取后结果为 'Invalid Dates'?

javascript - 事件排序 ExpressJS/Node

javascript - 缩放和旋转后,HTML5 Canvas 会回移

html - 无法单击模式窗口中的元素

c++ - CALLBACK DialogProc()定义中uMsg参数是什么意思

javascript - Ember.js:如何跟踪延迟操作运行时错误?

ios - 在 Facebook 上分享图片时添加默认句子

iphone - 使用 Facebook iPhone SDK 时如何刷新 oauth token