2012-10-02 10 views
6

Es scheint, dass jQuery trigger() nur Ereignishandler ausgeführt wird, die mit jQuery gebunden wurden. Ich habe einige Module, die native Browser-Ereignisbindung verwenden. Die Verwendung des Codes von https://stackoverflow.com/a/2676527 funktioniert für mich, aber ich frage mich, ob da etwas in jQuery eingebaut ist, das das tun wird?Trigger Real Event mit jQuery

Update von Kommentaren: anscheinend funktioniert es für Klickereignisse auf Tasten. Aber nicht für Änderungsereignisse auf Auswahlbox: http://jsfiddle.net/qxpXV/2/

Für das Protokoll: Hacking die andere Bibliothek ihrer Bindungen mit jQuery zu tun isttrigger() Arbeit machen, aber ich weiß nicht wirklich will, das zu tun.

+1

@singpolyma Was meinen Sie mit nativer Browser-Ereignisbindung? '.addEventListener()'? Ich bin in der Lage, einen solchen Handler aufzurufen: http://jsfiddle.net/mnrUt/ Hm, selbst wenn ich den Code über ein 'onevent'-HTML-Attribut spezifiziere, kann jQuery' .trigger() 'immer noch diesen Code ausführen : http://jsfiddle.net/mnrUt/1/ –

+0

@adeneo Siehe meine zwei Demos oben. –

+0

@ ŠimeVidas - Scheint, es funktioniert, immer erwartet, dass es nicht funktioniert, wie die Dokumentation sagt, es ist für Ereignisse mit jQuery gebunden, und nie wirklich um es zu testen! – adeneo

Antwort

1

Sie können dies tun, indem Sie manuell (je nach Browser, fireEvent/dispatchEvent) ein Ereignis direkt am DOM-Element auslösen/auslösen. Code from this answer wird die Ereignis-Dispatching behandeln, Sie müssen es nur für ein DOM-Element und nicht den jQuery-Wrapper ausführen.

+0

Sie werden feststellen, dass ich auf sehr ähnlichen Code in meiner Frage verlinke :) – singpolyma

+0

Akzeptieren, weil es der einzige Weg zu sein scheint. jQuery unterstützt das einfach nicht, soweit ich das beurteilen kann :) – singpolyma