4 Stimmen

jquery's .click() funktioniert nicht?

Wenn es

<a href="javascript:onclick:alert('hi')"> click </a>.

Wie kommt es $('a').click(); nicht zum Auftauchen des Warnhinweises führt?

0 Stimmen

Ich muss ein Element buchstäblich "anklicken". Zum Beispiel habe ich dies getan $('a').trigger('click'); <a href="google.com">; clickme</a> Nichts passiert

4voto

yoda Punkte 10482

Egal, ob Sie normales Javascript im Anker verwenden oder Jquery einsetzen. Wenn Sie jquery verwenden möchten, tun Sie dies:

$('a').click(function (e) {
   e.preventDefault(); 
   alert('hi');
}); 

und entfernen Sie den Code, den Sie in href="" haben, in etwas anderes, wie ein href="#"

0 Stimmen

Dadurch wird der Doppelklick beim ersten Mal nicht behoben.

4voto

brianreavis Punkte 11412

Ich glaube, das ist es, was Sie wollen:

<a href="#" onclick="alert('hi')"> click </a>

Dann, um sie manuell auszulösen:

$('a').trigger('click');

0 Stimmen

Ja. Wie kommt es, dass es bei mir nicht funktioniert hat? Auch wenn es tatsächlich eine href-URL gibt, warum macht .trigger('click') den Browser nicht zum Navigieren?

0 Stimmen

Warum können Sie den Event-Handler nicht extern anhängen, wie in den Antworten von Yoda und mir gezeigt? Inline-Ereignishandler werden nicht empfohlen.

0 Stimmen

Meder, ich muss ein Element buchstäblich "anklicken". zum Beispiel habe ich dies getan $('a').trigger('click'); <a href=" google.de "> clickme</a> Nichts passiert....

1voto

meder omuraliev Punkte 177513

Der Grund, warum es nicht funktioniert, ist, weil Sie das Klick-Ereignis nicht richtig anhängen, Sie hacken es ein, indem Sie es in den href-Wert werfen. Machen Sie es Link zu # oder die echte Url, nicht immer Platz JS inline. Dann fügen Sie den Event-Handler extern:

$('a').click(function(e) {
    e.preventDefault()
    alert('hi')'
});

Dann auslösen mit .trigger('click') wenn Sie dies manuell tun müssen.

0 Stimmen

Beziehen Sie sich auch auf onclick? Was ist falsch an onclick?

0 Stimmen

Es handelt sich um einen Inline-Event-Handler, und es ist eine bewährte Praxis, den Inhalt von der Präsentation und dem Verhalten zu trennen (der 3-beinige Schemel des Webdesigns).

1voto

Guffa Punkte 663241

Der Grund dafür, dass Sie das Klick-Ereignis nicht auslösen können, ist, dass Sie kein Klick-Ereignis festlegen.

El onclick: die Sie im Code haben, hat nichts zu tun mit dem onclick Veranstaltung ist es nur ein Etikett. Wenn man es wie ein Ereignis benennt, passiert nichts Besonderes.

Ihr Code ist also äquivalent zu:

<a href="javascript:alert('hi')"> click </a>

Wenn Sie ein Ereignis wünschen, verwenden Sie das Attribut onclick:

<a href="somepage.html" onclick="alert('hi');"> click </a>

1voto

Justin Punkte 11

Es gibt eine Möglichkeit, den Klickauslöser mit href zum Laufen zu bringen. Sie müssen einen window.location-Aufruf mit dem Ereignisziel an das Klickereignis binden. Dadurch werden alle onclick-Aktionen ausgelöst, gefolgt von dem href-Ziel. Zum Beispiel so:

$("a").click(function(event) {
    window.location = event.target.href;
});

$("a").trigger("click");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X