OVH Cloud OVH Cloud

insertion html et onclick

15 réponses
Avatar
unbewusst.sein
jusqu'ici j'inserrait un bouton en html par :

#innerHTML+='<a class="button" href="javascript:void(0)"><span
id="'+id+'">'+txt+'</span></a>';

puis, juste après je faisais :
document.getElementById(id).onclick=action;

dans une function add_button_right(txt, id, action) où :
txt est le texte du bouton ;
id est son id ;
action est le "nom" symbolique de la fonction à appeller (ce n'était pas
une string; exemple d'appel :
add_button_right("Modifier","modify_item_id",modify_item);

comme; pour UN bouton; la vérif à la console me donnait son onclick à
null, et pas pour un autre bouton (souvent j'en crée deux à la fois),
j'ai changé mon code et je ne passe plus que des strings :

la function a le même nom; les mêmes paramètres excepté que cette
fois-ci action est une scring, un appel :
add_button_right("Modifier","modify_item_id","modify_item()");

la function ayant été modifiée pour :
#innerHTML+='<a class="button" href="javascript:void(0)"><span
id="'+id+'" onclick="'+action+';return false">'+txt+'</span></a>';

et donc, il n'y a plus de :
#onclick=action;

que pensez-vous de ce problème ?

je précise qu'avec ce cha,gement, la fonction modifier marche; avant;
pas de onclick, le bouton restait inactif...
--
« L'amour est la sagesse du fou et la folie du sage. »
(Samuel Johnson)

5 réponses

1 2
Avatar
SAM
Le 29/08/11 08:02, Une Bévue a écrit :
Pascal Poncet wrote:


Bah, je ne voulais pas heurter ta sensibilité.
Si tu veux, on peut développer le sujet sur [f.c.i.w.auteurs], car ici
on serait hors charte (j'aurais deux liens à te donner pour argumenter
ce que j'ai osé "affirmer").



l'ergonomie pour moi c'est un gros mot...
et surtout j'aime pas du tout les boutons qui changent d'allure s'ils
sont créés soit par Mac OS X; soit par win *



mais de quoi te mêles-tu ?

le windowsien va pas apprécier les boutons Mac
et lycée de versailles

en résumé; si j'étais sûr qu'un sous-arbre dom généré par du php était
directement assimilable par le browser, donc à travers le js, je
passerai tout de cette manière là.



si tu ajaxionnes,
voir à voir les subtilités :
- responseText
- responseXML

sinon pour insérer du JS efficace
ça va dépendre du brouteur (IE et les autres)

pour les "autres" :

function insertJS(leCode) {
var s = document.createElement('script');
s.type = 'text/javascript';
s.innerHTML = leCode;
document.getElementsByTagName('head')[0].appendChild(s);
}


Pour l'affectation ou ré-affectation du onclic :
préférer une fonction sans paramètre qui se débrouille avec les éléments
et attributs de l'objet cliqué.
Voir : <http://cjoint.com/?AHDlPg8Lufu>

--
Stéphane Moriaux avec/with iMac-intel
Avatar
unbewusst.sein
SAM wrote:


mais de quoi te mêles-tu ?



ben cette page je la fais rien que pour moi...
c'est un truc qui gère mes mots de passe...

le windowsien va pas apprécier les boutons Mac
et lycée de versailles

> en résumé; si j'étais sûr qu'un sous-arbre dom généré par du php était
> directement assimilable par le browser, donc à travers le js, je
> passerai tout de cette manière là.

si tu ajaxionnes,
voir à voir les subtilités :
- responseText
- responseXML



Ah, c'est vrai, bonne pioche !!!
je fais un #responseText

bon encore un truc à mettre dans mon TODO...

sinon pour insérer du JS efficace
ça va dépendre du brouteur (IE et les autres)

pour les "autres" :

function insertJS(leCode) {
var s = document.createElement('script');
s.type = 'text/javascript';
s.innerHTML = leCode;
document.getElementsByTagName('head')[0].appendChild(s);
}



ben, j'ai pas de js à inserrer, du html, c'est tout.

Pour l'affectation ou ré-affectation du onclic :
préférer une fonction sans paramètre qui se débrouille avec les éléments
et attributs de l'objet cliqué.
Voir : <http://cjoint.com/?AHDlPg8Lufu>



mais dans mon appel, je n'ai pas de paramètres, je veux dire, dans
l'html que j'ajoute, il y en a pas, c'est dans la gestion js qu'il y en
a...

bon, je garde ça sous le coude.

--
« Ne pouvant pas supprimer l'amour, l'Église a voulu au moins
le désinfecter, et elle a fait le mariage. »
(Charles Baudelaire)
Avatar
SAM
Le 29/08/11 13:38, Une Bévue a écrit :
SAM wrote:

Voir :<http://cjoint.com/?AHDlPg8Lufu>



mais dans mon appel, je n'ai pas de paramètres, je veux dire, dans
l'html que j'ajoute, il y en a pas, c'est dans la gestion js qu'il y en
a...



ben oui, se débrouiller pour que ça fonctionne sans paramètres.

Le truc cliqué sait où il est et saura trouver ses copains, me semble ?
Yaka parcourir le DOM pour y trouver tout ce qu'on veut, non ?


--
Stéphane Moriaux avec/with iMac-intel
Avatar
unbewusst.sein
SAM wrote:

ben oui, se débrouiller pour que ça fonctionne sans paramètres.

Le truc cliqué sait où il est et saura trouver ses copains, me semble ?
Yaka parcourir le DOM pour y trouver tout ce qu'on veut, non ?



ben oui, dacodac'

tiens sur FreeTools j'ai trouvé un framework intéressant :
DHTMLX Ajax Library, mais peut-être connais-tu déjà ?
<http://dhtmlx.com/>

--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)
Avatar
SAM
Le 29/08/11 19:51, Une Bévue a écrit :

tiens sur FreeTools j'ai trouvé un framework intéressant :
DHTMLX Ajax Library, mais peut-être connais-tu déjà ?
<http://dhtmlx.com/>



Non, je ne connais pas (22 Mo le zip pour la "suite" ! ! !)

Regardé le 'Gant', la démo ne pèse "que" 280 ko dont 180 de JS en 5 ou 6
fichiers, et tout ça pour 5 à 6 étapes sur le diagramme.
Je pourrais peut-être avoir l'usage du Gant mais pas à ce prix là.
(et sans parler du temps passé à comprendre comment fonctionne la lib et
la démo, ni du temps passé à se battre pour faire le diagramme, le
modifier au fil du temps lors du processus de fabrication. C'est déjà
lourdingue avec un vrai soft dédié, alors ... avec une "appli" et par
internet ... finalement : non merci!)

--
Stéphane Moriaux avec/with iMac-intel
1 2