jQuery: The Write Less, Do More JavaScript Library

Ticket #1393 (closed enhancement: fixed)

Opened 1 year ago

Last modified 1 year ago

Assigning jQuery to an existing namespace

Reported by: Byron Assigned to: john
Type: enhancement Priority: major
Milestone: 1.1.4 Component: core
Version: 1.1.3 Keywords: namespace, 'this'
Cc: Needs: Patch

Description

I've started using jquery in the development of a firefox extension.

generally when developing extensions i like to keep all my properties and functions etc in one global namespace, im not sure if this is the best approach but its worked pretty well in the past when it comes to avoiding namespace collisions.

example :

var myObject = {

config : {

debug : true

},

init : function () {..}

};

now after a bit of thought, i realised someone else might decide to use jquery in their extension or use the '$' namepace for something else.. then I thought "No Problem jQuery.noConflict() to the rescue!"

so off I went to try it out;

myObject.$ = jQuery.noConflict();

didnt work...

so then i tried some different combinations..

myObject.foo = jQuery.noConflict();

myObject.prototype.$ = jQuery.noConflict();

var jBuf = jQuery.noConflict(); myObject.$ = jBuf;

by now i was getting frustrated (as is probably evident in this post...) So is there any way to do it like this or will i have to use a seperate namespace for jquery?

--Byron

Attachments

Change History

Changed 1 year ago by john

  • owner set to john

Changed 1 year ago by john

  • status changed from new to closed
  • resolution set to fixed

Fixed in SVN rev [2819].

Changed 1 year ago by john

From Arrix: - There should be some way to unroll 'jQuery' from the global object. - new Function() should become eval('function(){...}') to catch jQuery in its scope - Expandos need a prefix so that they don't overlap

Changed 1 year ago by john

  • status changed from closed to reopened
  • resolution deleted

Changed 1 year ago by john

  • status changed from reopened to closed
  • resolution set to fixed

I committed the first two points in SVN rev [2833], but changing the last one would cause the API to break (since plugins rely on the $events expando). I think this is ok for now, but I'll try to think of a better solution.

Note: See TracTickets for help on using tickets.