0

我正在尝试在我的应用程序中实现 Facebook 功能。第一个功能是能够使用 facebook 登录。第二个允许用户将朋友从 facebook 导入应用程序。

然而,问题是当我使用 FB API 时,JQuery Mobile 功能停止。

如果我删除 Facebook API 代码,布局就完美了。这意味着如果我添加一个将数据角色设置为控制组的字段集,则不会将任何 JQuery 样式和函数应用于元素及其子元素。

有谁知道这个问题的解决方案?(应该有更多使用社交 API 的 JQuery Mobile 应用程序)。

控制器.js

this.handleContactsFacebook = function () {
        this.initialize();

        function retrieveContacts () {
            FB.api('/me/friends/?fields=id,first_name,middle_name,last_name,username,name', function(response) {
                (new Contact()).showContactListFacebook(response.data);
            });
        }

        FB.getLoginStatus(function (data) {
            if (data.status === 'connected') {
                retrieveContacts();
            }
            else if (data.status === 'not_authorized') {
                $.mobile.changePage("menu.html");
            }
            else {
                $.mobile.changePage("menu.html");
            }
        });
    };

联系.js

this.showContactListFacebook = function (contacts) {
        var fieldset = $("<div data-role=\"fieldcontain\">" +
        "<fieldset data-role=\"controlgroup\">" +
            "<legend>Agree to the terms:</legend>" +
            "<input type=\"checkbox\" name=\"checkbox-1\" id=\"checkbox-1\" class=\"custom\" />" +
            "<label for=\"checkbox-1\">I agree</label>" +
            "</fieldset>" +
        "</div>");
        $("fieldset").remove();
        $("#contactsFacebook").prepend(fieldset);
    };

http://forum.jquery.com/topic/jquery-mobile-ignored-data-role-when-implementing-facebook

4

1 回答 1

0

尝试添加jQuery.noConflict()您的代码。我认为 facebook api 可能使用 $ 令牌以及 jquery (因此 jquery mobile 也)

更多信息在这里:http ://api.jquery.com/jQuery.noConflict/

您也可以尝试用 jQuery 替换 jquery 代码的 $ 并查看是否解决了冲突,即替换$("fieldset").remove();jQuery.("fieldset").remove();

于 2013-11-08T11:09:24.423 回答