我正在尝试在Twitter引导程序模式对话框中加载Facebook登录按钮:
$("a.fb-login, .modal a.fb-login").on("click", function(e) {
e.preventDefault()
FB.login(function(response) {
// ...
这适用于放置在模式对话框外部的按钮,但是当元素在对话框中呈现(从启动框触发)时,单击该链接会使对话框消失,而不是在新窗口中启动Facebook弹出窗口:< / p>
// when 401 unauthorized
message = $("#login-form").clone();
bootbox.modal(message)
答案 0 :(得分:0)
我怀疑当你调用on()
方法时,监听器只会附加到页面上当前的元素。
如果您希望能够在不必重新附加侦听器的情况下处理新创建的元素上的事件,请尝试将侦听器附加到整个页面,但是使用选择器来过滤掉这样的事件:
$('body').on('click', 'a.fb-login, .modal a.fb-login', function(e) {
e.preventDefault()
FB.login(function(response) {
// ...
显然,缩小你附加听众的位置是很好的做法。