双击Facebook分享按钮

时间:2015-12-20 14:45:07

标签: javascript jquery html facebook onclick

我有一个按钮在项目上分享Facebook上的网页内容,当我点击它时不起作用。当用户双击时,该按钮才起作用...... :(

我的代码:

HTML

 <button>
    <img src = "images/socialButtons/56/facebook.png" id = "Item-A" onclick="shareFb(this.id)">
 </button>

JavaScript的:

function shareOnFacebook(e, id){
e.preventDefault();
FB.ui(
    {
        method: 'feed',
        name: '',
        link: 'http://anurl.com/'' + id + '.jpg',
        picture: 'http://anurl.com/'+ id +'.jpg',
        caption: '',
        description: "",
        message: ""

    }
);
}

function shareFb(id){

$('#'+ id +'').click(function(e){
    shareOnFacebook(e, id);
});

}

我在index.html上实现了以下脚本(该按钮位于此文件中)

<!-- Facebook SDK JavaScript -->
<script>
window.fbAsyncInit = function() {
    FB.init({
        appId      : '#myFacebookAppIdNumber',
        xfbml      : true,
        version    : 'v2.5'
    });
};

(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/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

我非常感谢任何帮助;)

非常感谢。

1 个答案:

答案 0 :(得分:1)

只需单击两次,因为您在单击后附加了单击事件。为什么这样?摆脱内联点击。

所以添加一个公共类:

<img class="share" id="foo" src="bar.gif" />

将事件附加到班级

$(".share").on("click", function (e) {
    shareOnFacebook(e, this.id);
});

上面的代码需要在文档末尾或文档就绪时运行。您也可以使用事件委派来添加一个事件处理程序。

$(document).on("click", ".share", function (e) {
    shareOnFacebook(e, this.id);
});