On May 26, 2:14 am, "Michael Geary" <[EMAIL PROTECTED]> wrote:
> > > $.extend(foo) merely returns a reference to foo. It doesn't
> > > clone foo.
>
> > > $.extend( {}, foo ) creates a new object and copies all of foo's
> > > properties into it (doing a shallow copy).
>
> > > So in theory you may be able to use $.extend( {}, $ ) - or more
> > > properly, jQuery( {}, jQuery ) - to clone the jQuery constructor. I
> > > wouldn't promise that this would work, though - it depends on what
> > > assumptions the jQuery code makes.
> >    This also doesn't work. I have tried both $.extend({}, $)
> > and $.extend(true, {}, $). This results in $D('body') is not
> > a function error. Seems that it doesn't copy really.
>
> That's what I get for posting late at night. Of course that wouldn't work,
> because you need to clone the jQuery constructor function itself - which {}
> doesn't do.
>
> This would have a better chance of working:
>
>   $D = eval( '' + jQuery );
>   $D.prototype = jQuery.extend( {}, jQuery.prototype );
>
> A quick test seems to work - but I'm not sure about cross-browser support,
> and there could be issues because of assumptions made inside the jQuery
> code.
   <snip>

    I'm sorry for the very late follow up. I was quite busy to try
this. And, it works for $D('body'), but I get error when trying to
extend:
$D.fn.extend({
        click: function() {
                                alert('overridden click');
                return this;
        }
        });

    Throws "$D.fn has no properties" error like before.

--
  <?php echo 'Just another PHP saint'; ?>
Email: rrjanbiah-at-Y!com    Blog: http://rajeshanbiah.blogspot.com/

Reply via email to