2009-07-24 9 views
0

comment est-ce possible que l'appel à la fonction d'alerte change le comportement d'un script js? Quelque chose comme ça:Comment se fait-il que l'alerte casse l'exécution javascript?

function add_token (item) { 
    var li_data = $.data(item.get(0), "tokeninput"); 

œuvres, mais ceci:

function add_token (item) { 
    alert('a'); 
    var li_data = $.data(item.get(0), "tokeninput"); 

ne fonctionne pas - je suis dans l'erreur suivante Firebug: li_data est jquery.tokeninput.js non défini Ligne 336 (ajout d'alerte d'appel est le seul changement)

(comme vous pouvez le voir, je joue avec tokenizing Autocomplete plugin jQuery - http://loopj.com/2009/04/25/jquery-plugin-tokenizing-autocomplete-text-entry/)

maintenant que est quelque chose qui me tracasse. Quelqu'un peut-il m'expliquer comment cela est-il possible? MISE À JOUR: J'ai essayé d'utiliser Chrome au lieu de Firefox et ce problème particulier n'apparaît pas. Et maintenant? Cela devrait être considéré comme une sorte de bug dans FF ou y a-t-il quelque chose d'autre à ce sujet dont je ne suis pas au courant?

+1

nous donner plus de code. l'erreur que vous avez montrée ne se produirait que si li_data était lu, et il n'est pas lu dans votre code – mkoryak

+0

déboguer avec firebug – mkoryak

+0

li_data est accédé dans la ligne suivante en fait, comme ça: var li_data = $ .data (item.get (0), "tokeninput"); var this_token = insert_token (li_data.id, li_data.name); – Olek

Répondre

1

La spéculation pure, mais le fait que c'est pour une chose de saisie semi-automatique me fait me demander si le fait que l'alerte vole la mise au point est de tout vider. Y a-t-il peut-être un événement qui se déclenche au mauvais moment?

1

Je suis d'accord avec Darth - probablement un problème lié au focus.

Si vous avez besoin de voir la valeur de votre script qu'il exécute, utilisez Firebug à la place

function add_token (item) { 
    console.log('a'); 
    var li_data = $.data(item.get(0), "tokeninput"); 
+0

Oui - vous avez tous les deux raison. Il y a eu un flou d'événement qui a mis l'élément à zéro. :) La raison pour laquelle cela a fonctionné dans Chrome était que Chrome a exécuté un événement de flou après la lecture de li_data. Merci - je commence juste avec js et il me faudrait beaucoup de temps pour trouver la réponse moi-même. – Olek

Questions connexes