molily: Jquery Funktion wird nicht ausgeführt

Beitrag lesen

Hallo,

function ichBinEineGlobaleFunktion() {}
Und dann kann ich sie "ganz normal" über einen "nativen" onclick-Handler aufrufen?

Ja, das wäre in dem Fall möglich.

Mein Problem ist dann aber, wie übergebe ich zu jedem (z.b.) Button einige Parameter? Oder ist das dann tatsächlich so gedacht, daß ich jedem Button eine ID zuordne und zu jeder ID eine click-Funktion deklariere?

Jedem Button einen individuellen Handler zuzuweisen wäre unschön, ineffektiv und würde viel sich wiederholenden Code produzieren. Ein flexibler Handler für alle Buttons ist besser.

Die nötige Information für das Script bringst du am besten im HTML unter. Dazu eignen sich allgemein die Attribute id, class sowie data-Attribute. Im JavaScript kannst du diese Information dann auslesen.

HTML:

<button class="myButton" data-id="123">Mach was mit ID 123</button>  
<button class="myButton" data-id="456">Mach was mit ID 456</button>

JavaScript mit jQuery:

$(document).ready(function() {  
  
  // Registriere ein Click-Handler für alle buttons  
  $('.myButton').[link:http://api.jquery.com/click/@title=click](function([link:http://api.jquery.com/category/events/event-object/@title=event]) {  
    // Greife auf das angeklickte Element zu, verpacke es in ein jQuery-Objekt:  
    var target = $([link:http://api.jquery.com/event.currenttarget/@title=event.currentTarget]);  
    // Lese das data-id-Attribut aus:  
    var id = target.[link:http://api.jquery.com/data/@title=data]('id');  
    alert(id);  
  });  
  
});

Es gibt natürlich noch andere, ggf. bessere Möglichkeiten, je nachdem, wie dein konkreter Anwendungsfall aussieht. Data-Attribute sind hier die allgemeinste Weise, um Informationen für JavaScripte im HTML unterzubringen. Diese data-Attribute sind nicht sichtbar und haben auch sonst keine Auswirkungen, wenn sie nicht per JavaScript ausgelesen werden.

Mathias