I've been messing around with jQuery plugin code and I'm trying to put all of my common variables into a single object for easy access. I have included a few examples below on how I've done this, but I'm wondering how others deal with this problem.
Lets say I have this
var x = function(options){ var defaults = { ulist : $('ul#list'), listLen : $('ul#list').children().length } $.extend(options, defaults); // do other stuff } What I'm trying to do is use the ulist object in as a base, then find the number of li's
I guess I could do this:
var x = function(options){ var defaults = { ulist : $('ul#list'), listLen : 0 } defaults.listLen = defaults.ulist.children().length; $.extend(options, defaults); // do other stuff } or this:
var x = function(options){ var defaults = { ulist : $('ul#list') }; var defaults2 = { listLen : defaults.ulist.children().length } $.extend(defaults, defaults2); $.extend(options, defaults); // do other stuff } The above code samples are just thrown together, and only meant to get the idea across to you. Anyway, is there a better way to do this?
()at the end, letting you can accessdefaults.listLenlike a property (like calling .length on a jQuery object). I'll update my answer, but feel free to accept stereofrog's answer since he pointed to that method.