Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FB点击连接事件_Javascript_Facebook_Asp.net Mvc 3 - Fatal编程技术网

Javascript FB点击连接事件

Javascript FB点击连接事件,javascript,facebook,asp.net-mvc-3,Javascript,Facebook,Asp.net Mvc 3,我需要确保我的Facebook Connect代码在点击事件上运行,但无论我如何尝试,我都无法让它工作。它必须是一些简单的东西,但我就是想不出来。这是我最近的一次尝试,但是如果我在FB.Event.subscribe之后在代码中添加了一个警报,它永远不会到达。代码确实在document.ready中运行,但我需要它在单击事件中运行。实时URL是lovelyjubbly.info/en-GB/Gameplan <div class="facebookconnect">

我需要确保我的Facebook Connect代码在点击事件上运行,但无论我如何尝试,我都无法让它工作。它必须是一些简单的东西,但我就是想不出来。这是我最近的一次尝试,但是如果我在FB.Event.subscribe之后在代码中添加了一个警报,它永远不会到达。代码确实在document.ready中运行,但我需要它在单击事件中运行。实时URL是lovelyjubbly.info/en-GB/Gameplan

    <div class="facebookconnect">
            <div id="fb-root"></div>

            <script language="javascript" type="text/javascript" src="http://connect.facebook.net/@Thread.CurrentThread.CurrentUICulture.Name.Replace('-', '_')/all.js"></script>

            <script type="text/javascript">

                $(document).ready(function () {

                    window.FB.init({ appId: 'abc', status: true, cookie: true, xfbml: true });

                });

                function fbclick()
                {
                    FB.Event.subscribe('auth.login', function (response) {
                        alert("loggedin");
                        var isUserAuthenticated = @User.Identity.IsAuthenticated.ToString().ToLower();

                        if ((response.status == 'connected') && (isUserAuthenticated == false)){
                            window.location.href = '@Account.Urls.FacebookConnect()';
                        }
                    });
                }

            </script>

            <script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/" + @Thread.CurrentThread.CurrentUICulture.Name.Replace('-', '_') + "/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

           <fb:login-button onclick="fbclick()" autologoutlink="false" perms="email" id="fbLogin">

           </fb:login-button>

        </div><br />

$(文档).ready(函数(){
init({appId:'abc',状态:true,cookie:true,xfbml:true});
});
函数fbclick()
{
FB.Event.subscribe('auth.login',函数(响应){
警报(“loggedin”);
var isUserAuthenticated=@User.Identity.IsAuthenticated.ToString().ToLower();
if((response.status=='connected')&&(isUserAuthenticated==false)){
window.location.href='@Account.url.FacebookConnect()';
}
});
}
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“///connect.facebook.net/”+@Thread.CurrentThread.CurrentUICulture.Name.Replace('-','.'''''+')“/all.js#xfbml=1”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);

编辑:使用live()方法,似乎仍然不起作用:

    <div class="facebookconnect">
            <div id="fb-root"></div>

            <script language="javascript" type="text/javascript" src="http://connect.facebook.net/@Thread.CurrentThread.CurrentUICulture.Name.Replace('-', '_')/all.js"></script>

            <script type="text/javascript">

                $(document).ready(function () {

                    window.FB.init({ appId: 'abc', status: true, cookie: true, xfbml: true });

                });

                $("#fbLogin").live("click", function(){ 
                    FB.Event.subscribe('auth.login', function (response) {
                        alert("loggedin");
                        var isUserAuthenticated = @User.Identity.IsAuthenticated.ToString().ToLower();

                        if ((response.status == 'connected') && (isUserAuthenticated == false)){
                            window.location.href = '@Account.Urls.FacebookConnect()';
                        }
                    });
                }); 


            </script>

            <script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/" + @Thread.CurrentThread.CurrentUICulture.Name.Replace('-', '_') + "/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

           <fb:login-button autologoutlink="false" perms="email" id="fbLogin">

           </fb:login-button>

        </div><br />

$(文档).ready(函数(){
init({appId:'abc',状态:true,cookie:true,xfbml:true});
});
$(“#fbLogin”).live(“单击”,函数(){
FB.Event.subscribe('auth.login',函数(响应){
警报(“loggedin”);
var isUserAuthenticated=@User.Identity.IsAuthenticated.ToString().ToLower();
if((response.status=='connected')&&(isUserAuthenticated==false)){
window.location.href='@Account.url.FacebookConnect()';
}
});
}); 
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“///connect.facebook.net/”+@Thread.CurrentThread.CurrentUICulture.Name.Replace('-','.'''''+')“/all.js#xfbml=1”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);

使用


我不太记得为什么会这样,但它看起来确实是这样。

你的选择器应该是“#fbLogin”,因为它是一个IDThis也不起作用,我知道它应该起作用,但就像我的其他尝试一样,肯定有什么东西阻止了它的工作,但我不知道是什么。移动
$().live()
里面的东西
$(document).ready()
。这只是一个绑定的指令。你需要将它放在ready函数中。订阅
auth.login
似乎有点问题(从我在这里读到的),使用
auth.authResponseChange
似乎可以为一些人提供更可靠的结果。尝试过了,在Firebug中使用$(“#fbLogin”).live(“单击”,函数()当我登录时,行甚至不会被触发。可能的重复不是重复,我设法以另一种方式使原始版本工作,但现在需要使单击事件工作,这仍然是一个相同的基本主题。
$(yourselector).live('click', function() {
   //fb stuff
});