jquery - trigger

N

Netzwerkidi

Hallo,

irgendwo ist der Wurm drin.

Ich versuche mit jquery eine bereits definierte Funktion auszuführen mit trigger, aber irgendwie wird es nicht ausgeführt.

Was mache ich falsch?

Code:
      $(document).keypress(function(e) {
        if (e.keyCode == 27) {
          if ($('#a').is(':visible')==true) {
            $('#a').hide(200); // wird gemacht und ist das, was sich neben anderem hinter dem $('#b').click... verbirgt, das getrigger werden soll
            $('#b').trigger('click'); // wird nicht gemacht, soll aber
          }
        }
      });
Grüße

Idi
 
Hallo,

und warum rufst du die Funktion dann nicht mit dem Name auf?
Code:
....
$('#b').meineFunktion();
....
oder verstehe ich da was falsch?
 
Falls du wie folgt meinst, das habe ich schon versucht:
Code:
$('#b').click();
 
Nein,

du hast geschrieben, dass du eine Funktion aufrufen willst
Ich versuche mit jquery eine bereits definierte Funktion auszuführen

funktionen sind folgendes....
Code:
function meineFunktion () {
....
}

// bzw.

$.fn.meineFunktion = function(){
.....
}

Erkläre mal bitter etwas genauer, was du machen willst. Ich verstehe den Sinn nicht was passieren soll, wenn man auf ID "b" klickt.
 
Wie bereits anfangs geschrieben, habe ich ein Element (Button, #b), das auf Click einige Funktionen ausführt.

Und dieses Element will ich nun quasi ferngesteuert clicken, und zwar mit der Esc-Taste.

Damit ich nicht zig Codestellen habe mit demselben Inhalt, versuche ich also dem System zu sagen: "Wenn ich die ESC- oder sonst eine Taste drücke, führe ein Click dieses Buttons aus."

Klar, ich könnte auch den Button-Click umschreiben und eine separate Funktion aufrufen.
Und das könnte mit der ESC-Taste auch so machen. Aber ich habe es nun mal anders.
 
Zuletzt bearbeitet von einem Moderator:
Also bei mir f u n z t es....

Habe deinem Code nur unwesentlich geändert.

Code:
      $(document).keypress(function(e) {
        if (e.keyCode == 27) {
          if ($('#a').is(':visible')==true) {
            $('#a').hide(200);
            $('#b').css("color", "red").click(); // geändert
          }
        }
      });

Kontrolle
Code:
<div id="a">Das ist a</div>
<button type="submit" id="b" name="b" onclick="if(confirm('Ich wurde geklickt!')) return false;">Das ist b</button>

äähhmm, der Button hat auch den type="submit" ? Mit type="button" wird er zwar geklickt, hat aber keine Wirkung auf irgend etwas
 
Zuletzt bearbeitet:
Wie bereits anfangs geschrieben, habe ich ein Element (Button, #b), das auf Click einige Funktionen ausführt.

Das ist ja alles gut und schön, trotzdem wäre es nett, die Funktion nun mal zu Sehen.

Erstmal solltest du kein keypress verwenden, je nach Browser funktioniert das nicht mit Sondertasten( http://stackoverflow.com/questions/3...king-in-chrome )

Das ist hier aber nicht das Problem, da du schreibst:


Code:
$('#a').hide(200); // wird gemacht


-dein Skript also in die if-Bedingung hineingeht.

Da ein Aufruf von trigger() erstmal gezwungenermassen keine Reaktion nach sich ziehen muss, wäre es gut zu Sehen, was da nun passieren soll, denn trigger('click') wird ausgeführt, da bin ich recht sicher. Aber warum es nicht die erwünschte Wirkung erzielt, das könnte die Funktion beantworten, die du unterschlägst.
 
@kenguruh2002

Das ist genau das, was ich nicht will, Mehrfach-Code.
Code:
$('#b').css("color", "red").click(); // geändert

@abuzze

Aber warum es nicht die erwünschte Wirkung erzielt, das könnte die Funktion beantworten, die du unterschlägst.

Streng geheim, nur soviel: streng geheim. Nein, Scherz beiseite, es ist völlig irrelevant, was dahinter für ein Code liegt.

Inzwischen habe ich eine separate Fuktion definiert und rufe die nun von einigen Stellen auf.
 
Mich verwirrt dieses "Ach, ich hab's jetzt anders gelöst. Macht's gut."-Spielchen immer.
Uns geht es hier auch darum, eventuelle Probleme ausmachen zu können, um anderen Usern, die einen ähnlichen Fall haben, damit zu helfen. Deshalb wäre entweder dein ursprünglicher Code, den wir vervollständigen könnten, oder dein aktueller ganz hilfreich.
Du musst ja nicht alles posten, aber zu den wesentlichen Sachen gehört deiner Beschreibung nach nunmal die .click()-Funktion.

Danke, Gruß.
 
Zurück