How to catch jQuery.event.trigger ()?

I want to create a custom event with jQuery that is not configured on a DOM element.

The jQuery description says:

jQuery.event.trigger('test');

fires a custom event.

But how can I catch him?

thanks in advance

+5
source share
4 answers

I assume that you are asking about this custom event (at least it made no sense for me to try to catch trigger): this was done with .bind :

$('some_selector').bind('test', function() { 
  console.log('Test was caught'); }
);

UPDATE: Actually no, you do not need a selector - just an object that will be the "master" of the event. You can use something like this:

// taken from the comments at the Doc page
var o = {length: 3};
$(o).bind( 'custom', function(){ console.log('hi') } );
$(o).trigger('custom');

// Output
hi
hi
hi
+8
source

, , , . , , . , , jQuery.event.trigger().

http://www.sitepoint.com/jquery-custom-events/.

.

$(document).on("test", function(event, data) {
  console.log(data)
});

$.event.trigger('test', [{ foo: 'bar' }]);
+2

jQuery.event.trigger(), :

jQuery.event.trigger('test', null, element);

, , :

$(element).on('test', fn);

jQuery.event.trigger jQuery:

jQuery jQuery.event.trigger:

jQuery.event = {
    ...

    trigger: function( event, data, elem, onlyHandlers ) {...}

    ...
}

( jQuery .)

:

jQuery.fn.extend({
...
    trigger: function( type, data ) {
        return this.each(function() {
            jQuery.event.trigger( type, data, this );
        });
    },
    triggerHandler: function( type, data ) {
        var elem = this[0];
        if ( elem ) {
            return jQuery.event.trigger( type, data, elem, true );
        }
    },
...
});
0

:

$(document).bind('test', function (e) {
  // handler code here...
});
0

All Articles