| 5162 | } |
| 5163 | |
| 5164 | function cloneCopyEvent( src, dest ) { |
| 5165 | var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; |
| 5166 | |
| 5167 | if ( dest.nodeType !== 1 ) { |
| 5168 | return; |
| 5169 | } |
| 5170 | |
| 5171 | // 1. Copy private data: events, handlers, etc. |
| 5172 | if ( dataPriv.hasData( src ) ) { |
| 5173 | pdataOld = dataPriv.access( src ); |
| 5174 | pdataCur = dataPriv.set( dest, pdataOld ); |
| 5175 | events = pdataOld.events; |
| 5176 | |
| 5177 | if ( events ) { |
| 5178 | delete pdataCur.handle; |
| 5179 | pdataCur.events = {}; |
| 5180 | |
| 5181 | for ( type in events ) { |
| 5182 | for ( i = 0, l = events[ type ].length; i < l; i++ ) { |
| 5183 | jQuery.event.add( dest, type, events[ type ][ i ] ); |
| 5184 | } |
| 5185 | } |
| 5186 | } |
| 5187 | } |
| 5188 | |
| 5189 | // 2. Copy user data |
| 5190 | if ( dataUser.hasData( src ) ) { |
| 5191 | udataOld = dataUser.access( src ); |
| 5192 | udataCur = jQuery.extend( {}, udataOld ); |
| 5193 | |
| 5194 | dataUser.set( dest, udataCur ); |
| 5195 | } |
| 5196 | } |
| 5197 | |
| 5198 | // Fix IE bugs, see support tests |
| 5199 | function fixInput( src, dest ) { |