You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.4 KiB
78 lines
1.4 KiB
define([ |
|
"./core", |
|
"./core/init", |
|
"./traversing" // parent, contents |
|
], function( jQuery ) { |
|
|
|
jQuery.fn.extend({ |
|
wrapAll: function( html ) { |
|
var wrap; |
|
|
|
if ( jQuery.isFunction( html ) ) { |
|
return this.each(function( i ) { |
|
jQuery( this ).wrapAll( html.call(this, i) ); |
|
}); |
|
} |
|
|
|
if ( this[ 0 ] ) { |
|
|
|
// The elements to wrap the target around |
|
wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); |
|
|
|
if ( this[ 0 ].parentNode ) { |
|
wrap.insertBefore( this[ 0 ] ); |
|
} |
|
|
|
wrap.map(function() { |
|
var elem = this; |
|
|
|
while ( elem.firstElementChild ) { |
|
elem = elem.firstElementChild; |
|
} |
|
|
|
return elem; |
|
}).append( this ); |
|
} |
|
|
|
return this; |
|
}, |
|
|
|
wrapInner: function( html ) { |
|
if ( jQuery.isFunction( html ) ) { |
|
return this.each(function( i ) { |
|
jQuery( this ).wrapInner( html.call(this, i) ); |
|
}); |
|
} |
|
|
|
return this.each(function() { |
|
var self = jQuery( this ), |
|
contents = self.contents(); |
|
|
|
if ( contents.length ) { |
|
contents.wrapAll( html ); |
|
|
|
} else { |
|
self.append( html ); |
|
} |
|
}); |
|
}, |
|
|
|
wrap: function( html ) { |
|
var isFunction = jQuery.isFunction( html ); |
|
|
|
return this.each(function( i ) { |
|
jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); |
|
}); |
|
}, |
|
|
|
unwrap: function() { |
|
return this.parent().each(function() { |
|
if ( !jQuery.nodeName( this, "body" ) ) { |
|
jQuery( this ).replaceWith( this.childNodes ); |
|
} |
|
}).end(); |
|
} |
|
}); |
|
|
|
return jQuery; |
|
});
|
|
|