Simulated operation:
- ELEM. Trigger (event );
- ELEM. triggerhandler (event );
- Different triggerhandler:
- Does not cause default event Behavior
- . Trigger () will operate on all elements matched by the jquery object, while. triggerhandler () only affects the First Matching Element.
- Events created by. triggerhandler () are not bubbling in the DOM tree.
- This method returns the return value of the event processing function, rather than the jquery object.
- $. Event (event); if the event needs to depend on a specific operation for other operations, use event and set properties:
event = $.Event("keydown"); //keydown event; event.keyCode = 9; $doc.trigger(event);//can use triggerHandler() insteadof trigger;
Example:
function keyLogger(target) { if(!(this instanceof keyLogger)) { return new keyLogger(target); }; this.target = target; this.log = []; var self = this; this.target.off("keydown").on("keydown", function(event) { self.log.push(event.keyCode); });}QUnit.test("keylogger api behavior", function(assert) { var event, $doc = $(document), keys = keyLogger($doc); //trigger event event = $.Event("keydown"); //keydown event; event.keyCode = 9; $doc.trigger(event);//can use triggerHandler() insteadof trigger; //verify expected behavior assert.equal(keys.log.length,1,"a key was logged"); assert.equal(keys.log[0],9,"correct key was logged"); });
Qunit usage notes-3 test user operations