Thanks for correcting me about that. Strange that they would decide to
build the Sortable class in that way.

Dan


On Jan 13, 2:49 pm, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
> Hi Dan,
>
> > You are confusing constructors with class definition
>
> He's not, actually, though I can see why you would think that.  When
> you're creating a straight Sortable from script.aculo.us, you use
> Sortable.create, not new Sortable.[1]  It's just the way Sortable was
> written, and it happens to use the same function name ("create") as
> the function for defining classes in Class.  Again, Sortable isn't a
> "class" (more accurately, it's not a function used for initializing
> prototypes).  It's just a collection of properties (most of which are
> functions).
>
> [1]http://wiki.github.com/madrobby/scriptaculous/sortable
> --
> T.J. Crowder
> tj / crowder software / com
> Independent Software Engineer, consulting services available
>
> On Jan 13, 7:53 pm, Dan <danwd...@gmail.com> wrote:
>
> > You are confusing constructors with class definition.Class.create() is
> > for defining a new "Class" which will support inheritance. To
> > construct an instance of a class you defined with var MyClass =
> > Class.create(baseClass, { ... }) you construct it like you would any
> > other object:
>
> > var myClassInstance = new MyClass();
>
> > So, this should work:
>
> > // extend
> > SortableLabelList = Class.create(Sortable, {
> >         // redefine onHover
> >         onHover: function($super, element, dropon, overlap) {
> >                 $super();
> >                 console.log(element);
> >                 console.log(dropon);
> >                 console.log(overlap);
> >         }
>
> > });
>
> > // create list
> > var mySortableLabelList = new SortableLabelList("...");
>
> > For more info, see the example in the documentation:
>
> >http://prototypejs.org/api/class/create
>
> > Dan
>
> > On Jan 13, 6:31 am, Cyrus <arianglan...@googlemail.com> wrote:
>
> > > Ok, thanks.
>
> > > Let me describe my actual problem:
>
> > > I have a list with labels and checkboxes:
>
> > > <ul id="list">
> > > <li><label><input type="checkbox" /> My first checkbox</label></li>
> > > <li><label><input type="checkbox" /> My second checkbox</label></li>
> > > ...
> > > </ul>
>
> > > I wanted to have that list sortable. Very easy task with Sortable:
>
> > > Sortable.create("list");
>
> > > Works fine except one issue:
>
> > > Safari and Firefox interpret the drag and drop as a click on the
> > > label. Clicking on the label changes the status of the checkbox. There
> > > must be a way to prevent this.
>
> > > Do you have any ideas how to do this.
>
> > > I used the Sortable callback onChange to save the checkbox status
> > > before the drop. The other callback onUpdate is fired before the click
> > > on the label takes effect. I would like to add another change listener
> > > to the checkbox that only takes effect when onUpdate was fired.
>
> > > On 13 Jan., 14:44, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
>
> > > > Hi Cyrus,
>
> > > > I don't know much about script.aculo.us, but looking at it
> > > > (dragdrop.js), Sortable isn't a class (in the loose way we use that
> > > > word in this classless prototypical language JavaScript), it's just an
> > > > object with a bunch of functions assigned as properties.  So you won't
> > > > be able to extend it in this way.  Perhaps someone who's done more
> > > > with script.aculo.us can point you to a convenient way to achieve the
> > > > result you're looking for.
>
> > > > FWIW,
> > > > --
> > > > T.J. Crowder
> > > > tj / crowder software / com
> > > > Independent Software Engineer, consulting services available
>
> > > > On Jan 13, 1:27 pm, Cyrus <arianglan...@googlemail.com> wrote:
>
> > > > > Hi,
>
> > > > > I want to extend the Sortable class from the scriptaculous library.
> > > > > Where is my mistake? It's telling me SortableLabelList.create doesn't
> > > > > exist - I assumed it is inherited from Sortable.
>
> > > > > // extend
> > > > > SortableLabelList = Class.create(Sortable, {
> > > > >         // redefine onHover
> > > > >         onHover: function($super, element, dropon, overlap) {
> > > > >                 $super();
> > > > >                 console.log(element);
> > > > >                 console.log(dropon);
> > > > >                 console.log(overlap);
> > > > >         }
>
> > > > > });
>
> > > > > // create list
> > > > > SortableLabelList.create("...");
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to