J'ai le code folllowing:JQuery logique bind() appeler deux fois, seulement sur reload
$(document).ready(function() {
$("#Titles .item a").each(function (index, domEle) {
// 1)
$(this).ttip($.extend(true, {}, ttip_opts, {
content: {
text: $(this).attr('title'),
title: {
text: "SomeText"
}
}
}));
// 2)
$(this)
.bind("click", function (event) {
alert(this);
})
.attr('title', '');
});
});
Lorsque je clique sur « reload » sur la page et cliquez sur le lien, la déclaration d'alerte apparaît deux fois. Sur les clics suivants, il apparaît une fois.
Lorsque je commente la déclaration # 1, elle n'apparaît qu'une seule fois à chaque fois.
Que se passe-t-il ici? Comment puis-je obtenir l'instruction d'alerte à afficher une fois à chaque fois? Il n'y a qu'un seul élément d'ancrage dans l'élément que je traverse.
Mise à jour
je toujours obtenir deux clics sur ma méthode (maintenant appelé à partir d'un autre script), même lorsque je retire la liaison à l'événement de clic. Ainsi, chaque fonction exécute définitivement la logique dans la méthode click() sur le rechargement uniquement. J'essaye toujours de comprendre comment je peux déterminer si elle est appelée sur le rechargement, donc j'ignore au moins la logique que je ne veux pas courir deux fois.
Vous avez oublié de mettre votre "$ (document) .ready (function() {" balise de fermeture? –
Oui .. vérifié la balise de fermeture est dans le script. – duckus