11548 sujets

JavaScript, DOM et API Web HTML5

Hello,

j'ai ce petit bout de code qui pose problème:

<p class="displaydistro"><label id="hlel_4" class="hihltest" onclick="$highlight(this.id); return false">
<img src="js/chk_off.png" id="img_radio_arch" alt="Bouton radio" />
<input id="arch" onclick="turnImgRadio1(this)" type="radio" name="distro" value="arch" /> Arch</label></p>


la fonction javascript présente sur le <label> annule celle de l'input..

Pourquoi?

mon js:


function turnImgRadio1(objRadio)
{
    var t_img = document.getElementById('distro').getElementsByTagName('img');
    for (var i = 0; i < t_img.length; i++)
    {
        t_img[i].src = 'js/chk_off.png';
    }
    var img = document.getElementById('img_radio_' + objRadio.id);
    img.src = 'js/chk_on.png';
}


+ simple.js dispo ici: http://simplejs.bleebot.com/ (pour l'effet highlight)

merci

++[/i]
Modifié par csseur666 (24 Nov 2007 - 12:45)
Salut,

Le probléme c'est que la librairie que tu utilises est pleine de variables globales... donc tu vas avoir plein de problémes.
matmat a écrit :
Salut,

Le probléme c'est que la librairie que tu utilises est pleine de variables globales... donc tu vas avoir plein de problémes.

en enlevant return false , ça fonctionne.
Quelle librairie conseilles-tu pour des effets similaires? Smiley langue
En fait je ne suis pas trés bien placer pour donner des conseils en matiére de choix de librairie parceque je n'en utilise pas souvent...

Ce que je te conseil c'est d'apprendre les bases du js pour que quelque soit ton choix tu puisses les utiliser au mieux. Par exemple ta librairie a une fonction $('id') qui te permet d'éviter de faire document.getElementById('id') a chaque fois, autant l'utiliser.

Ce serait completement abérant pour faire juste un effet de charger tout prototype/scriptamachin ou tout mootool, parcequ'au final pour offrir un mini plus à ton visiteur tu ralenti tes pages et fait travailler son cpu pour rien donc le bilan est négatif. Par contre si tu fais une application web plein d'ajax alors pourquoi pas parcequ'au final tu gagne en temps de dévelopement voir peut-être en rapidité car ses librairies sont quand même bien optimisé.

Celle là est sympatique, en fait c'est plus un ensemble de fonction qu'une librairie, donc ce que tu peux faire c'est regarder comment c'est foutu est utiliser juste les deux ou trois fonction dont tu as besoin pour ton projet...

Comme ça comme tu connaitras ces fonctions, tu verras quelles variables et fonction elles initialisent et tu éviteras les conflits, de plus tu pourras l'enrichir d'autres fonctions selon tes besoins.

Rien ne sert de s'enfermer dans l'utilisation systématique d'une seule librairie.
Modifié par matmat (24 Nov 2007 - 23:00)