Hallo,
über ein onclick Ereignis, mit dem ich 2 Parameter wieter gebe, will ich die Funktion "name_der-funktion" aufrufen, aber sie "antwortet" nicht.
Wie sieht der onclick-Code aus? Nutzt du jQuery, um den Event-Handler zu registrieren? (Solltest du bestenfalls.)
<script type="text/javascript">
$(document).ready(function(){
/* Hier der jQuery-Code */
function name_der_funktion(wert1,wert2) {
alert(wert1 + '-' + wert2);
}
});
</script>
>
> Warum? Was mache ich falsch?
Du verschachtelst hier zwei Funktionen. Die äußere ist der namenlose Event-Handler für `$(document).ready()`{:.language-javascript}, die innere ist name\_der\_funktion.
Die innere Funktion ist privat, d.h. nur innerhalb der äußeren Funktion zugänglich. Dort, wo sie verfügbar ist, sehe ich keinen Aufruf, also wird sie nie aufgerufen. Sie ist nicht global. Versuchst du vielleicht, sie global aufzurufen? Über `<a onclick="name_der_funktion(…)">`{:.language-html} oder ähnlich?
Hast du einmal in die JavaScript-Fehlerkonsole des Browser geschaut? Dort müsst eine entsprechende Fehlermeldung stehen.
So ginge es zum Beispiel:
~~~javascript
$(document).ready(function() {
function testfunktion(wert1, wert2) {
alert(wert1 + '-' + wert2);
}
// Event-Handler registrieren
$('#irgendeinElement').click(function() {
testfunktion('X', 'Y');
});
});
Ich vermute, du vermischt noch alten JavaScript-Code, der direkt ins HTML eingebettet ist, mit neuem, auf jQuery basierenden Code. Gemäß dem Konzept »Unobtrusive JavaScript« sollten HTML und JavaScript getrennt werden. Das ist mit jQuery auch gut möglich.
Mathias