'event' entspricht in firefox
Ich bin mit dem folgenden code und es funktioniert einwandfrei in Chrome.
function dayBind(xyzValue) {
if(event.type == 'click')
alert('Mouse Clicked')
}
Beachten Sie, dass es kein 'Ereignis' variable an die Funktion übergeben, aber trotzdem war es für mich im Falle von chrome. Aber wenn ich mit firefox bekomme ich die Meldung 'Ereignis' nicht definiert.
Ich habe versucht mit der folgenden Problemumgehungen:
var e=arguments[0] || event;
auch:
var e=window.event || event;
Aber keiner von Ihnen arbeitete für mich. Gibt es irgendein "Ereignis" entspricht in Firefox?
Wie wird der Ereignis-listener registriert?
Wie ist
post der rest des Codes. Veranstaltung sollte an die Funktion übergeben werden, so sollte es sein, xyzValue. Aber ohne Zusammenhang ist es schwer zu sagen.
Dies ist, wie es sein Titel: dayBind(bodyCells); ich arbeite an einem FullCalendar plugin. Das ist eine Menge code. Es ist nicht möglich, es hier zu posten. Wenn Sie weitere Einzelheiten benötigen, um zu diagnostizieren, lassen Sie es mich bitte wissen, ich werde Ihnen alle details.
Wie ist
dayBind
genannt?post der rest des Codes. Veranstaltung sollte an die Funktion übergeben werden, so sollte es sein, xyzValue. Aber ohne Zusammenhang ist es schwer zu sagen.
Dies ist, wie es sein Titel: dayBind(bodyCells); ich arbeite an einem FullCalendar plugin. Das ist eine Menge code. Es ist nicht möglich, es hier zu posten. Wenn Sie weitere Einzelheiten benötigen, um zu diagnostizieren, lassen Sie es mich bitte wissen, ich werde Ihnen alle details.
InformationsquelleAutor Adil Malik | 2012-03-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil IE und Chrome setzen das Ereignis in die Globale Objekt -
window
, so dass Sie es bekommen können. In firefox müssen Sie den ersten parameter der Veranstaltung.Wenn Sie jQuery verwenden, warum nicht die
.bind()
das spart Ihnen eine Menge Zeit. jQuery wird die Ereignisbehandlung binden für cross-browser.Ich arbeite in einer sehr großen und komplizierten code. Kann ich nicht verwenden .bind() ich nur event-Objekt in dieser Funktion irgendwie. Ich Frage mich, warum ist es so schwierig in firefox 🙁
InformationsquelleAutor xdazz
Wenn Sie die Einstellung, bis der handler mit einem "onclick" - Attribut oder etwas (was, da Sie tagged die Frage "jQuery", Sie sollten wirklich nicht tun), müssen Sie explizit übergeben:
Der code in der "onclick" - Attribut sollte gedacht werden als ein Teil einer Funktion, die der browser für Sie erstellt. Die Funktion automatisch hat der "event" - parameter zur Verfügung. Schreiben Sie das Attribut wie ich in der Antwort führen, dass parameter, die übergeben werden, die Ihre andere Funktion. Wirklich, Sie sollten sich über die jQuery-API und verwenden, die zum binden von event-Handler anstelle von "onclick" und ähnliche Attribute.
InformationsquelleAutor Pointy
Wenn Sie es brauchen, um zu arbeiten, cross-browser, verwenden Sie einfach die
arguments
Objekt:Referenzen
InformationsquelleAutor
Arbeite ich in einem plugin callback-Funktion. Ich kann nicht rufen Sie mich an.
Eine einfache Frage zu Ihrem Vorschlag: wenn Sie schreiben:
onclick="whatever(event)"
Sie schreiben von javascript im Wert vononclick
- Attribut, richtig?Warum kann man nicht machen, die gleiche Funktion Aufruf innerhalb einer anderen Funktion wie diese:
function foo(){ whatever(event); //this is also javascript }
//Aber das funktioniert nicht bei mir im FireFox 10.0.2
Den code in der "onclick" - Attribut sollte gedacht werden als ein Teil einer Funktion, die der browser für Sie erstellt. Die Funktion wird automatisch der "event" - parameter zur Verfügung. Schreiben Sie das Attribut wie ich in der Antwort führen, dass parameter, die übergeben werden, die Ihre andere Funktion.
Wirklich, Sie sollten sich über die jQuery-API und verwenden, die zum binden von event-Handler anstelle von "onclick" und ähnliche Attribute.
InformationsquelleAutor Bocil Squarpant