2010-09-24 6 views
0

J'essaye de placer une variable de javascript pour être une de quelques options.Comment déterminer si quelque chose a été cliqué dans jQuery sur le premier chargement?

Si l'un des liens spécifiques n'a pas été cliqué (c'est-à-dire le chargement de la première page), la variable doit être définie sur 0 ou 1 (valeur par défaut).

Si vous avez cliqué dessus, je souhaite que ce numéro soit associé à ce lien.

disent donc le code html ressemble à ceci:

<a href=""><img src="icon2.png" id="icon-2"></a> | 
<a href=""><img src="icon3.png" id="icon-3"></a> | 
<a href=""><img src="icon4.png" id="icon-4"></a> | 

La variable jQuery serait quelque chose comme:

var icon_num = 2; // If 'icon-2' is clicked, etc. 

Répondre

3

Vous pouvez faire quelque chose comme ceci:

var icon_num = 0; 
$("#someContainer img").click(function() { 
    icon_num = parseInt(this.id.replace("icon-",""), 10); 
}); 

Ou, donnez-leur un attribut de données qui inclut uniquement l'ID, comme ceci:

<img src="icon2.png" data-id="2" /> 

Cela simplifierait votre code un peu, jusqu'à:

var icon_num = 0; 
$("#someContainer img").click(function() { 
    icon_num = parseInt($(this).attr("data-id"), 10); 
}); 
+0

@TJCrowder - oups, merci monsieur :) –

+0

Pourquoi 10 la limite supérieure? Est-ce une limite pour la fonction parseInt? Ou est-ce juste un nombre entier aléatoire que vous mettez là? Je l'ai remarqué dans une autre réponse à une autre question, alors je me demandais juste. – marcamillion

+0

Cela fonctionne avec brio. – marcamillion

1

example

var icon_num = null; // empty select 

$('a').bind('click', function(ev) { 

    ev.stopPropagation(); 

    icon_num = $(this).find('>img').attr('id').split('-')[1]; 

    return false; 

}); 
+0

Merci pour cet effort andres. L'autre exemple correspond mieux à ce que je veux faire. – marcamillion

+0

parfait, merci pour la réponse –

Questions connexes