@@ 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. |