Here's what I came up with after reading Scott G's post above (thanks
Scott!!!). Anybody have comments on this as the "preferred method" to
extend a widget?
====================================================================
// This code block extends the uiDialog widget by adding a new boolean
option 'sticky' which,
// by default, is set to false. When set to true on a dialog instance,
it will keep the dialog's
// position 'anchored' regardless of window scrolling.
// Start of uiDialog widget extension...
var _init = $.ui.dialog.prototype._init;
$.ui.dialog.prototype._init = function() {
var self = this;
_init.apply(this, arguments);
this.uiDialog.bind('dragstop', function(event, ui) {
if (self.options.sticky) {
var left = Math.floor(ui.position.left) - $
(window).scrollLeft();
var top = Math.floor(ui.position.top) - $(window).scrollTop
();
self.options.position = [left, top];
};
});
if (window.__dialogWindowScrollHandled === undefined) {
window.__dialogWindowScrollHandled = true;
$(window).scroll(function(e) {
$('.ui-dialog-content').each(function() {
var isSticky = $(this).dialog('option', 'sticky') && $
(this).dialog('isOpen');
if (isSticky) {
var position = $(this).dialog('option',
'position');
$(this).dialog('option', 'position', position);
};
});
});
};
};
$.ui.dialog.defaults.sticky = false;
// End of uiDialog widget extension...
===================================================================
On Jun 25, 1:14 pm, Charlie <[email protected]> wrote:
> just curious, when you extend like this do you append the extension to
> ui.tabs.js or place it with document.ready functions?
> jvitela wrote:I do something like this whenever I want to extend a widget,
> what do you think? (function($) { /** * Extend Tabs to add strip spacer **/
> $.fn.extend($.ui.tabs.prototype,{ _original_init : $.ui.tabs.prototype._init,
> _init: function() { this._original_init();
> this.element.children('.ui-tabs-nav').after ('<div
> class="ui-tabs-strip-spacer"></div>'); } }); })(jQuery);
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery UI" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jquery-ui?hl=en
-~----------~----~----~----~------~----~------~--~---