Кнопка JQuery открывает 2 диалоговых окна разрешения - PullRequest
0 голосов
/ 14 сентября 2011

Я занимаюсь разработкой приложения для Facebook, и после добавления jQuery к коду я сталкиваюсь со странным поведением.

Это мой оригинальный код, который отлично работает:

button.onclick = function() {
    FB.login(function(response) {
        if(response.authResponse) {
            FB.api('/me', function(info) {
                login(response, info);
            });
        }
        else {

        }
    }, {scope:'publish_stream'});
}

Затем я добавил jQuery и использовал вместо этого событие click:

$("#button").click(function() {
    FB.login(function(response) {
        if(response.authResponse) {
            FB.api('/me', function(info) {
                login(response, info);
            });
        }
        else {

        }
    }, {scope:'publish_stream'});
});

И теперь при нажатии кнопки открывается два диалоговых окна с разрешениями.Почему это?

1 Ответ

0 голосов
/ 14 сентября 2011

Возможно, этот код выполняется дважды.Вы можете проверить это с console.log () или оповещениями.Ваш исходный код работал, потому что «button.onclick = ...» перезаписывает предыдущий обработчик события onlick, в то время как jQuery использует addEventListener (или attachHandler в IE), который не удаляет обработчик prevoius.попробуйте

$('#button').unbind('click').click(function() {....});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...