/ / Double-cliquez sur le bouton de partage Facebook - javascript, jquery, html, facebook, onclick

Double-cliquez sur le bouton de partage Facebook - javascript, jquery, html, facebook, onclick

J'ai un bouton pour partager du contenu Web sur Facebook sur un projet et quand je clique ça ne marche pas. Le bouton ne fonctionne que lorsque les utilisateurs font un double clic ... :(

Mon code:

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);
});

}

J'ai implémenté le script suivant sur mon index.html (le bouton est sur ce fichier)

<!-- 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>

J'apprécie vraiment toute aide;)

Merci beaucoup.

Réponses:

1 pour la réponse № 1

Cela prend deux clics car vous attachez un événement de clic après l'avoir cliqué. Pourquoi faire ça? Débarrassez-vous du clic en ligne.

Ajoutez donc une classe commune:

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

Attachez l'événement à la classe

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

Le code ci-dessus doit s'exécuter à la fin de votre document ou sur un document prêt. Vous pouvez également utiliser la délégation d'événements à la place pour ajouter un seul gestionnaire d'événements.

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