Bug Tracker

Ticket #2902: FastTrigger-bug.diff

File FastTrigger-bug.diff, 1.9 KB (added by aheimlich, 12 years ago)

Patch the jQuery SVN copy and not my project's copy

  • jquery.fastTrigger.js

     
    1010 * @version 1.0.0
    1111 */
    1212;(function( $ ){
    13        
    14         //this is a fake event object, will stay with us all along, don't break it
    15         var event = {
    16                 //no need for real data, what data would you expect from a programmatic trigger
    17                 pageX:0,
    18                 pageY:0,
    19                 which:0,
    20                 button:0,
    21                 metaKey:false,
    22                 ctrlKey:false,
    23                 charCode:' ',
    24                 keyCode:0,
    25                 //no need for real functions
    26                 preventDefault:function(){},
    27                 stopPropagation:function(){}
    28         };
     13        function makeEvent() {
     14                //this is a fake event object, will stay with us all along, don't break it
     15                var event = {
     16                        //no need for real data, what data would you expect from a programatic trigger
     17                        pageX:0,
     18                        pageY:0,
     19                        which:0,
     20                        button:0,
     21                        metaKey:false,
     22                        ctrlKey:false,
     23                        charCode:' ',
     24                        keyCode:0,
     25                        //no need for real functions
     26                        preventDefault:function(){},
     27                        stopPropagation:function(){}
     28                };
     29               
     30                return event;
     31        }
    2932
    3033        $.fn.fastTrigger = function( type, args ){
    31                 var e = event,
    32                         ns, any = true;//any is the same as "not-exclusive"
     34                var e, ns, any = true;//any is the same as "not-exclusive"
    3335               
    34                 if( !args || !args.length )//what if args is a string ? args CAN'T be a string (docs.jquery.com).
    35                         args = null;//args must be an array, or nothing
    36                 else if( args[0].preventDefault )
    37                         e = args[0];           
    38                 else
    39                         args.unshift( e );
     36                if( !args || !args.length ) {//what if args is a string ? args CAN'T be a string (docs.jquery.com).
     37                        args = null;//args must be an array, or nothing
     38                        e = makeEvent();
     39                } else if( args[0].preventDefault ) {
     40                        e = args[0];
     41                } else {
     42                        e = makeEvent();
     43                        args.unshift( e );
     44                }
    4045               
    4146                if( type.indexOf('!') != -1 ){
    4247                        any = false;//exclusive