ok, i found out that i can load the data in the open callback function like this
$.get('something.php', function(data){ $("#dialog").html(data); }); but still i'm noct sure if it is a good way... i can't handle eg if i have different widths/heights which belong to different content... there must be a more compact way... and, as far as i know, changing the width and height in the open function doesn't achieve the correct position of the dialog box... On Jan 18, 4:03 pm, mcologne <blueameri...@web.de> wrote: > hmm... i'm also interested in this item... > > i used dialog box so far like code below... where 'content' is an > array dynamically filled before... > but i'm not sure if $("#dialog").html(content) is a good way to pass > my data... even if it's more complex... > > is there a way to optimize this?... eg. a further function which loads > the data which loads the data instead of > html(content)? > > $("#dialog").dialog({ > autoOpen:false, > draggable: true, > dialogClass: 'flora', > }); > $('#dialog').data('width.dialog', contentWidth); > $('#dialog').data('height.dialog', contentHeight); > $('#dialog').data('title.dialog', contentTitle); > $("#dialog").dialog('open'); > > $("#dialog").html(content); > ... > > On Jan 17, 6:48 pm, "Richard D. Worth" <rdwo...@gmail.com> wrote: > > > On Sat, Jan 17, 2009 at 11:39 AM, niner <jyi...@gmail.com> wrote: > > > > thanks very much Richard for this clarification. this 'ui' parameter > > > sounds like it's really for API specific data rather than user data > > > (i.e. lastname, firstname). from reading the documentation, it lead me > > > to believe that this is for passing user data into the dialog object. > > > so should i still be just using the jQuery .data() mechanism to pass > > > around data then? > > > Yes, .data() is perfect for that sort of thing. > > > - Richard > > > > thanks, > > > > On Jan 17, 4:04 am, "Richard D. Worth" <rdwo...@gmail.com> wrote: > > > > This was actually documentation of an unintended behavior (a bug). I've > > > gone > > > > ahead and removed that line. A bit of background first: > > > > > All jQuery UI plugin callbacks follow the same pattern. They receive two > > > > arguments. We call these 'event' and 'ui'. > > > > > callback 'event' argument > > > > The first argument (event) is the plugin event which triggered the > > > callback. > > > > In the case of dialog open, that would be the 'dialogopen' event. This > > > also > > > > will contain detail about the original browser event that triggered this > > > > plugin event. For example you can close a dialog by pressing the Esc key > > > > (keypress) or by clicking a close button (click). > > > > > callback 'ui' argument > > > > The second argument (ui) is a bag of data (a hash) that contains useful > > > > information that pertains to that particular event that is either not > > > > accessible or not convenienyl accessible through other API calls. For > > > > example, if you are doing drag and drop, in the drop callback of a > > > > droppable, you need a handle to the draggable element which is being > > > > dropped. So we provide that in ui.draggable. Here's a code example > > > > > $("#draggable").draggable(); > > > > $("#droppable").droppable({ > > > > drop: function(event, ui) { > > > > var drp = $(this); > > > > var drg = $(ui.draggable); > > > > drp.append(drg.text()); > > > > } > > > > > }); > > > > > So $(this) is the droppable element being dropped on. And > > > > $(ui.draggable) > > > is > > > > the draggable element being dropped. Notice how this is specific to this > > > > particular instance of the drop event callback? The next time an element > > > is > > > > dropped (and this callback is triggered), it might be a very different > > > > draggable element, so it wouldn't make sense to have this as an option > > > api > > > > call, for example, like > > > > > var drg = $(this).droppable("option", "draggable") // not logical or > > > > supported - use $(ui.draggable) instead > > > > > So that's why we have these two arguments on every jQuery UI callback > > > > function - 'event' and 'ui'. > > > > > Back to your specific question about why dialog open's 'ui' argument was > > > > documented as containing the options object: > > > > > In 1.5.3, each callback 'ui' argument contained at least one property > > > call > > > > ui.options. This contained the current plugin options like you pass to > > > init, > > > > like > > > > > var options = { modal: true, autoOpen: false }; > > > > $(el).dialog(options); > > > > > This created an API hole. By supplying the options collection, the user > > > > could actually make a change to plugin options in a callback function > > > > without going through the api. So you could do something like > > > > > $(el).dialog({ > > > > open: function(event, ui) { > > > > ui.options.width = 650; // bad - doesn't use the API > > > > } > > > > > }); > > > > > This is bad because without using the API, the plugin wouldn't be aware > > > of > > > > that change, and it couldn't react accordingly. Another reason for > > > removing > > > > this ui.options is it created an additional way of getting the same > > > > information. As I mentioned before, the ui parameter should only contain > > > > data that is relevant to this specific instance of this specific event > > > > callback, that can't be had coneniently through an existing API. In the > > > case > > > > of dialog.options.width, there's already an API for getting and setting > > > that > > > > > $(el).dialog({ width: 300 }); // init dialog with width 300 > > > > var width = $(el).dialog("option", "width"); // get dialog width after > > > init > > > > $(el).dialog("option", "width", 650); // set dialog width after init > > > > > So I just checked and currently (1.6rc5) there is no data passed in the > > > 'ui' > > > > argument to either the dialog open or dialog close callbacks. So this > > > sits > > > > as a placeholder. If we ever have to pass any relevant data to these > > > > callbacks, we'll put it in that hash and document it. Here's an examples > > > of > > > > documented 'ui' argument hash contents: > > > > >http://docs.jquery.com/UI/Draggable/draggable#options > > > > > * ui.helper - the JQuery object representing the helper that's being > > > dragged > > > > * ui.position - current position of the helper as { top, left } object, > > > > relative to the offset element > > > > * ui.absolutePosition - current absolute position of the helper as { > > > > top, > > > > left } object, relative to page > > > > > - Richard > > > > > On Sat, Jan 17, 2009 at 3:01 AM, niner <jyi...@gmail.com> wrote: > > > > > > is there an example of data passing using the "open" option in jQuery > > > > > UI dialog? the documentation states that > > > > > > "The data passed is the opened dialog options object." > > > > > > but how does that work exactly in code? > > > > > > thanks, --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery UI" group. To post to this group, send email to jquery-ui@googlegroups.com To unsubscribe from this group, send email to jquery-ui+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-ui?hl=en -~----------~----~----~----~------~----~------~--~---