That's an interesting problem.  I'll have to keep that in mind when we
add in cloning support.

On Jan 13, 1:41 pm, Daniel Wachsstock <[email protected]> wrote:
> Thanks for the update. One thought that just hit me was that I recommended 
> using the metadata plugin, which grabs $(element).data(name) for the initial 
> options but that gets replaced by the widget object when the plugin is run. I 
> wonder if that would cause problems.
>
> I can't see how it would, unless someone called the plugin twice on the same 
> element. But that would lead to all sorts of disasters with double event 
> handlers, etc. Bottom line: There ought to be a way to prevent instantiating 
> duplicate widgets on an object.
>
> Perhaps something as simple as (in the plugin-creating method)
>             } else if (!isMethodCall && !$.data(this,name).widgetName) {
>                 $.data(this, name, new $[namespace][name](this, options));
>             }
>
> Since no one's options object should contain a widgetName
>
> Danny
>
> --- On Tue, 1/13/09, Scott González <[email protected]> wrote:
> From: Scott González <[email protected]>
> Subject: [jquery-ui] Re: Issue with widget on clone
> To: "jQuery UI" <[email protected]>
> Date: Tuesday, January 13, 2009, 8:20 AM
>
> Thanks Danny,
>
> The widget factory will be getting much love for 1.7.  I'll be in
> touch with you when I'm working on it.
>
> On Jan 12, 2:36 pm, Danny <[email protected]> wrote:> Ticket 
> created,http://ui.jquery.com/bugs/ticket/3803
> > Danny
>
> > On Jan 12, 7:59 am, Scott González <[email protected]>
> wrote:
>
> > > Jay, thanks for creating the test case, and thanks Danny for beating
> > > me to a response :-)
>
> > > Danny's response is fully correct and in fact while I was looking
> at
> > > your example, I was thinking about how we would support this natively
> > > and came to pretty much the same conclusion as Danny.  If one of you
> > > wants to create a feature request in Trac
>
> (http://ui.jquery.com/bugs/newticket> > ), we'll try to get this in for 1.7.
>
> > > On Jan 10, 10:44 pm, Danny <[email protected]> wrote:
>
> > > > The last post was mangled; I wanted to say you could use a
> custom
> > > > event:
> > > > $.fn.cloneTheWidgets = function (){
> > > >   return this.clone() // don't clone events
> > > >    .each(function(){
> > > >       var handlers =
>
> $.data(this,'events')['cloneTheWidgets'];
>
> > > >       if (handlers) for (var handler in handlers) handlers
> > > > [handler].apply(this); // manually trigger the clone event
> handlers
> > > >     }
>
> > > > };
>
> > > > and in the widget init function:
>
> > > > init: function(){
> > > >   var self = this;
> > > >   self.element.bind('cloneTheWidgets', function()
> {$(this)
> > > > [self.widgetName](self.options)});
> > > >   ...the rest of your init
>
> > > > }
>
> > > > Though I haven't tested this.
>
> > > > Danny
>
> > > > On Jan 9, 5:01 pm, jayg <[email protected]> wrote:
>
> > > > > Scott, sorry for the delayed response, had to come up with
> a stripped
> > > > > down test page and find somewhere to put it.  I have used
> for my
> > > > > example, I used the superbox
>
> onhttp://youngisrael-stl.org/wordpress/2008/08/22/extending-jquery-ui-w...> > 
> > > The example page can be found
>
> here:http://sarahhealydesign.com/widget_test.html
>
> > > > > What I am trying to do seems like it should be simple, and
> perhaps I
> > > > > am missing something obvious.  Basically all I do is
> attach a click to
> > > > > the button, and do:
> > > > > $('#experiment1')
> > > > >            .clone(true)
> > > > >            .appendTo('body')
> > > > >            .attr('id','experiment2');
>
> > > > > I attached an alert to the superbox, so whenever you click
> it, it
> > > > > tells you what it thinks is its id with
>
> this.element.get(0).id
>
> > > > > You will see in the example that it always returns
>
> experiment1 for the> > > > id.  Any help is much appeciated!
>
> > > > > -j
>
> > > > > On Jan 8, 11:20 am, Scott González
> <[email protected]> wrote:
>
> > > > > > Can you provide a demo page showing your problem?
>
> > > > > > On Jan 7, 10:20 pm, jayg
> <[email protected]> wrote:
>
> > > > > > > I have a custom widget built on jquery UI that I
> am running into an
> > > > > > > odd issue with.  Everything works as I want on
>
> initial use, but when I> > > > > > do a clone(true) on the widget and append 
> it to
>
> another element, the> > > > > > cloned version does not seem to have a proper
>
> handle on where it lives> > > > > > in the dom - it returns the old id upon 
> calling
> this.element.get
> > > > > > > (0).id.  Do I need to do something, maybe call
>
> some method, to update> > > > > > this information w/in the widget, or is 
> this only
> ever set upon
> > > > > > > initial creation?  I did try calling
>
> $('#myItem').myWidget('init'),> > > > > > but no dice.  Any thoughts?  
> Something obvious
>
> I am missing?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to