2010-01-13 15 views
37

Ich suche nach einer Möglichkeit, automatisch auf ein Element zu klicken, wenn die Seite geladen wird.Wie wird der Klick beim Laden der Seite ausgelöst?

Ich habe versucht,

$("document").ready(function() { 
    $("ul.galleria li:first-child img").trigger('click'); 
}); 

verwenden, aber es scheint nicht zu arbeiten? Wenn ich jedoch $("ul.galleria li:first-child img").trigger('click'); in Firebugs Konsole eingeben und das Skript ausführen, funktioniert es.

Kann das Triggerereignis beim Laden verwendet werden?

+0

Es sollte funktionieren, es sei denn, das Element später hinzugefügt wird. Kannst du eine Demo veröffentlichen? (Versuchen Sie http://jsbin.com) – SLaks

+0

Können Sie das Szenario veröffentlichen, wo Sie dies tun möchten? Klingt wie aufdringlich Javascript – Perpetualcoder

+0

Wo ist Ihre 'click' Handler hinzugefügt? – SLaks

Antwort

92

Der Click-Handler, den Sie auszulösen versuchen, ist höchstwahrscheinlich auch über $(document).ready() angefügt. Wahrscheinlich wird das Ereignis ausgelöst, bevor der Handler angehängt wird. Die Lösung ist setTimeout zu verwenden:

$("document").ready(function() { 
    setTimeout(function() { 
     $("ul.galleria li:first-child img").trigger('click'); 
    },10); 
}); 

Eine Verzögerung von 10 ms führt dazu, dass die Funktion sofort ausgeführt, nachdem alle $(document).ready() Handler aufgerufen wurden.

+0

Genau das habe ich gesucht. Vielen Dank! – Justine

+0

Superstar danke –

+0

eine non-jquery Lösung wäre toll –

5
$(function(){ 

    $(selector).click(); 

}); 
+1

API-Referenz: http://docs.jquery.com/Events/click. Beachten Sie, dass '$ (Callback)' ist äquivalent zu $ ​​("Dokument"). Bereit (Rückruf); ' –

+0

Gleicher Effekt - funktioniert in Firebug, aber wenn in meine Skriptdatei eingegeben, tut es nicht. Firebug gibt auch keine Fehler. Ist es wichtig, dass sich in der Datei andere Skripte in $ (function() {..} befinden); auch? – Justine

4
$("document").ready({ 
    $("ul.galleria li:first-child img").click(function(){alert('i work click triggered'}); 
}); 

$("document").ready(function() { 
    $("ul.galleria li:first-child img").trigger('click'); 
}); 

nur sicherstellen, dass die Click-Handler vor dem Triggerereignis in der Call-Stack-Sequenz hinzugefügt werden.

$("document").ready(function() { 
     $("ul.galleria li:first-child img").trigger('click'); 
    }); 

    $("document").ready({ 
     $("ul.galleria li:first-child img").click(function(){alert('i fail click triggered'}); 
    }); 
+0

Ihre Antwort ist am passendsten. Vielen Dank. – Foreever

1

dies versuchen,

$("document").ready(function(){ 

$("your id here").trigger("click"); 
}); 
0

Sie können folgendes tun: -

$(document).ready(function(){ 
    $("#id").trigger("click"); 
}); 
Verwandte Themen