Camping_RIDER: jQuery click(function() mehrere Werte übergeben unmöglich?

Beitrag lesen

Aloha ;)

da ich ja das data- Attribut in der Erweiterung selbst bestimmen kann und auch wohl mehrere angeben kann könnte ich somit beliebig viele Parameter durch Javascript aus dem Button bei Klick auslesen lassen.

Ja, richtig.

Nun stellt sich die Frage:

Wird diese variante nun als guter Programmierstil bezeichnet und ist diese dem onclick Handler vorzuziehen ?

Du schreibst schon wieder was von onclick-Handler, obwohl ich dir jetzt schon dreimal gesagt habe, dass das keine eindeutige Bezeichnung ist, sondern eine Sammelbezeichnung verschiedener Methoden. ALLES was durch einen Klick in JavaScript ausgelöst wird, ist ein onclick-Handler. Auch die jQuery-click-Funktion... Aber okay - du hast ja ein Beispiel zur Verdeutlichung mitgeliefert, also will ich mal nicht so sein ;)

Ich würde das nun so machen (ich habe für Button eine css-Definition)
Unter php!

echo '<button class="button zusatzids" data-userid="'.$userid.'" data-zusatzId1="'.$zusatzId1.'" data-zusatzId2="'.$zusatzId2.'">meinbutton</button>';

unter Javascript bzw. dem jQuery Framework  könnte ich diese Attribute nun ganz leicht auslesen mit

$(".zusatzids").data(); // lese ich alle data- Attribute aus
//oder mit
$(".zusatzids").data("userid"); // erhalte ich nur die userid

  
Bist du sicher, dass $(...).data(xyz) dir den Wert vom data-xyz - Attribut ausgibt? Wenn nicht, dann benutze besser wie in meinem Beispiel getAttribute oder - in jQuery - attr('data-xyz').  
  

> wäre diese  Vorgehensweise gegenüber der Übergabe an Parameter mit onclick  
>   
> durch  
> Schreibweise unter php!  
> `echo '<button class="button" onclick="meinefunction('.$userid.','.$zusatzId1.', '.$zusatzId2.' );">meinbutton</button>';`{:.language-php}  
>   
> ~~~javascript

function meinefunction( userid, zusatzId1,zusatzId2)  

> {  
> //mach was  
> }  
> 

vorzuziehen?

Ja. Zweiteres ist tatsächlich bad practice. Wenn du dich auf zweiteres beziehen willst, dann nenn das nicht Methode mit onclick-Handler (aus o.g. Gründen) sondern inline-Notation oder onclick-Handler im HTML oder so ähnlich...

Grüße,

RIDER

--
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[