2016-07-06 10 views
0

ich den folgenden Code habe:Auslösung manuell ein Funktion Click-Ereignis Objekt

function myfunc(e){ 
    console.log(e.target); 
} 

, die das Ereignis der angeklickten Zu. Aber ich möchte die gleiche Funktion auslösen, ohne auf ein Ziel zu klicken.

Ist das möglich? Ist es möglich, so etwas zu tun?

myfunc(document.getElementById('btn').target); 
+0

überprüfen Sie dies, es kann helfen http://stackoverflow.com/questions/5658849/whats-the-equivalent-of-jquerys-trigger-method-without-jquery – Deep

+0

Mögliche dublicate: http://stackoverflow.com/ Fragen/2705583/how-to-simulieren-ein-Klick-mit-Javascript –

+0

Antwort ist wahrscheinlich in das Duplikat, und Sie können überprüfen, "wenn (typeof (e)! == 'undefined') {... CODE FÜR EVENT OBJEKT ...} '' –

Antwort

0

Auslösen eines .click() mit Javascript manuell direkt binden Sie den Klick an dieses Element, so dass in Ihrem Fall ein Ereignis nicht übergeben wird, indem Sie dies tun. Außerdem ist target eine Eigenschaft des Ereignisobjekts, daher wird der Aufruf direkt unter getElementById nicht funktionieren. Logischerweise sobald Sie getElementById dann haben Sie bereits Ihr Ziel, weil IDs sind einzigartig.

Auf der anderen Seite jQuery-Bibliothek können Sie Klicks auslösen und benutzerdefinierte Daten wie so passieren:

Beispiel:

$("button").on("click", {name: "John"}, sayName); 

function sayName(event){ 

    alert(event.data.name) 

} 

Hoffnung, das hilft.

0

Ich glaube, Sie Ihre Funktion wie diese ändern sollte, mit und ohne Ereignisauslöser zu verwenden (wenn Sie nur das Element Objekt benötigen)

function myfunc(e){ 
    var ele = e ? e.target : document.getElementById('btn'); 
    console.log(ele); 
} 
Verwandte Themen