| @@ 4775-4834 (lines=60) @@ | ||
| 4772 | } catch ( err ) { } |
|
| 4773 | } |
|
| 4774 | ||
| 4775 | function on( elem, types, selector, data, fn, one ) { |
|
| 4776 | var origFn, type; |
|
| 4777 | ||
| 4778 | // Types can be a map of types/handlers |
|
| 4779 | if ( typeof types === "object" ) { |
|
| 4780 | ||
| 4781 | // ( types-Object, selector, data ) |
|
| 4782 | if ( typeof selector !== "string" ) { |
|
| 4783 | ||
| 4784 | // ( types-Object, data ) |
|
| 4785 | data = data || selector; |
|
| 4786 | selector = undefined; |
|
| 4787 | } |
|
| 4788 | for ( type in types ) { |
|
| 4789 | on( elem, type, selector, data, types[ type ], one ); |
|
| 4790 | } |
|
| 4791 | return elem; |
|
| 4792 | } |
|
| 4793 | ||
| 4794 | if ( data == null && fn == null ) { |
|
| 4795 | ||
| 4796 | // ( types, fn ) |
|
| 4797 | fn = selector; |
|
| 4798 | data = selector = undefined; |
|
| 4799 | } else if ( fn == null ) { |
|
| 4800 | if ( typeof selector === "string" ) { |
|
| 4801 | ||
| 4802 | // ( types, selector, fn ) |
|
| 4803 | fn = data; |
|
| 4804 | data = undefined; |
|
| 4805 | } else { |
|
| 4806 | ||
| 4807 | // ( types, data, fn ) |
|
| 4808 | fn = data; |
|
| 4809 | data = selector; |
|
| 4810 | selector = undefined; |
|
| 4811 | } |
|
| 4812 | } |
|
| 4813 | if ( fn === false ) { |
|
| 4814 | fn = returnFalse; |
|
| 4815 | } else if ( !fn ) { |
|
| 4816 | return elem; |
|
| 4817 | } |
|
| 4818 | ||
| 4819 | if ( one === 1 ) { |
|
| 4820 | origFn = fn; |
|
| 4821 | fn = function( event ) { |
|
| 4822 | ||
| 4823 | // Can use an empty set, since event contains the info |
|
| 4824 | jQuery().off( event ); |
|
| 4825 | return origFn.apply( this, arguments ); |
|
| 4826 | }; |
|
| 4827 | ||
| 4828 | // Use same guid so caller can remove using origFn |
|
| 4829 | fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); |
|
| 4830 | } |
|
| 4831 | return elem.each( function() { |
|
| 4832 | jQuery.event.add( this, types, fn, data, selector ); |
|
| 4833 | } ); |
|
| 4834 | } |
|
| 4835 | ||
| 4836 | /* |
|
| 4837 | * Helper functions for managing events -- not part of the public interface. |
|
| @@ 4441-4500 (lines=60) @@ | ||
| 4438 | } catch ( err ) { } |
|
| 4439 | } |
|
| 4440 | ||
| 4441 | function on( elem, types, selector, data, fn, one ) { |
|
| 4442 | var origFn, type; |
|
| 4443 | ||
| 4444 | // Types can be a map of types/handlers |
|
| 4445 | if ( typeof types === "object" ) { |
|
| 4446 | ||
| 4447 | // ( types-Object, selector, data ) |
|
| 4448 | if ( typeof selector !== "string" ) { |
|
| 4449 | ||
| 4450 | // ( types-Object, data ) |
|
| 4451 | data = data || selector; |
|
| 4452 | selector = undefined; |
|
| 4453 | } |
|
| 4454 | for ( type in types ) { |
|
| 4455 | on( elem, type, selector, data, types[ type ], one ); |
|
| 4456 | } |
|
| 4457 | return elem; |
|
| 4458 | } |
|
| 4459 | ||
| 4460 | if ( data == null && fn == null ) { |
|
| 4461 | ||
| 4462 | // ( types, fn ) |
|
| 4463 | fn = selector; |
|
| 4464 | data = selector = undefined; |
|
| 4465 | } else if ( fn == null ) { |
|
| 4466 | if ( typeof selector === "string" ) { |
|
| 4467 | ||
| 4468 | // ( types, selector, fn ) |
|
| 4469 | fn = data; |
|
| 4470 | data = undefined; |
|
| 4471 | } else { |
|
| 4472 | ||
| 4473 | // ( types, data, fn ) |
|
| 4474 | fn = data; |
|
| 4475 | data = selector; |
|
| 4476 | selector = undefined; |
|
| 4477 | } |
|
| 4478 | } |
|
| 4479 | if ( fn === false ) { |
|
| 4480 | fn = returnFalse; |
|
| 4481 | } else if ( !fn ) { |
|
| 4482 | return elem; |
|
| 4483 | } |
|
| 4484 | ||
| 4485 | if ( one === 1 ) { |
|
| 4486 | origFn = fn; |
|
| 4487 | fn = function( event ) { |
|
| 4488 | ||
| 4489 | // Can use an empty set, since event contains the info |
|
| 4490 | jQuery().off( event ); |
|
| 4491 | return origFn.apply( this, arguments ); |
|
| 4492 | }; |
|
| 4493 | ||
| 4494 | // Use same guid so caller can remove using origFn |
|
| 4495 | fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); |
|
| 4496 | } |
|
| 4497 | return elem.each( function() { |
|
| 4498 | jQuery.event.add( this, types, fn, data, selector ); |
|
| 4499 | } ); |
|
| 4500 | } |
|
| 4501 | ||
| 4502 | /* |
|
| 4503 | * Helper functions for managing events -- not part of the public interface. |
|