jquery function ausführen beim klick auf den eine oder den anderen button?
hallo, ich habe eine jquery function und möchte, dass sie beim klicken auf den eine button und beim klicken auf den anderen button ausgeführt wird.
skript:
$(document).ready(function() {
$(".kommentarabschicken").click(function(){
if($(".kommentareingabe").val() != "") {
$.ajax({
type: "POST",
url: "kommentare.php",
data: "kommentareingabe=" + $(".kommentareingabe").val(),
cache: false,
success: function(html){
$(".scroll").html(html);
$(".kommentareingabe").val();
}
});
}
return false;
});
});
jetzt wird sie ausgefürt bei klicken auf kommentarabschicken. Sie soll auch ausgeführt werden, wen man auch kommentaroeffnen klickt. (evtl. wenn die Seite geladen wird)
Vielen Dank im Vorraus!!
3 Antworten
Mal etwas orakelt (ist wieder nicht so eindeutig, was eigentliches Ziel ist)...
- Eine Javascript-Funktion kann man als Objekt anlegen (var x = function(){...}).
- Das geht auch, indem einfach der Name einer definierten Funktion angegeben wird.
- Dieses Funktions-Objekt kann mehreren Buttons als Reaktionsfunktion eingestellt werden.
Du könntest also z.B....
- $(".kommentarabschicken").click(meineajaxfunktion);
- $(".kommentaroeffnen").click(meineajaxfunktion);
...definieren.
Du würdest lediglich davon abkommen müssen, Deine Funktion so wie jetzt als anonymes Element unmittelbar bei einem konkreten Funktionsaufruf nebenher zu definieren. Wobei Dir natürlich auch niemand verbieten würde, zwei gleich aussehende Funktionen zu definieren. Oder Die Funktion nebenbei beim nebenher-definiert-werden noch einer Variablen zuzuweisen und die dann bei der nächsten Reaktionsfunktionseinstellung zu übergeben.
Buchstäblich zig verschiedene Wege führen hier nach Rom.
$(document).ready(function() {
$(".kommentarabschicken").click(function(){
sendComments();
});
$(".kommentaroeffnen").click(function(){
sendComments();
});
}); //doc ready ende
function sendComments(){
if($(".kommentareingabe").val() != "") {
$.ajax({
type: "POST",
url: "kommentare.php",
data: "kommentareingabe=" + $(".kommentareingabe").val(),
cache: false,
success: function(html){
$(".scroll").html(html);
$(".kommentareingabe").val();
}
});
}
return false;
});
}
Wechselt ihr euch wieder ab mit Fragen stellen? :)
if($(".kommentareingabe, .kommentaroeffnen").val() != "") {
Ja. Logisch. steht ja auch in der Funktion. Das wolltest du doch.
EDIT: Ist .kommentaroeffnen
evtl. ein submit-Button, der ein Formular absendet?
Ne eigentlich nicht. Es soll auf der gleichen seite wieder ausgegeben werden.
nein ist es nicht. wenn man auf den kommentaroffnen button klick passiert leider garnichts. nur bei dem anderen wird man weiter geleitet.
Leider funktioniert das so nicht :( Man wird leider auf die kommentare.php Seite weitergeleitet und dort wird der text ausgegeben.