Hi, I originally posted this over at the jquery group but was suggested to post it here instead. I'm really excited about using the ui widget factory and hopefully you can help me get over these initial hurdles.
With help from this tutorial http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/ I started to create my own custom ui objects based on the ui widget factory. I am hoping somebody could help me with the object syntax. ////////////////////////////////////////////////////////// Question 1) Alternate way to call a method of the widget. I am able to call method darker() of my widget using this syntax: $().ready(function() { var aGreen = $('#test4 .target').green4(); $('#test4 .target').green4('darker'); }); For me it is more natural to do the same thing using the below syntax but it does not work. Can someone tell me why it doesn't work and/or show my the best practice approach to create a variable of a widget object instantiation and reference it later. $().ready(function() { var aGreen = $('#test4 .target').green4(); aGreen.darker(); }); /////////////////////////////////////////////////////////////////// Question 2) How make a function return something. Supposing my widget has a getHello() method that returns a "hello" string. How do I call that method of my widget. I tried the below code but it does not work. $().ready(function() { var aGreen = $('#test4 .target').green4(); console.log("response: "+ $('#test4 .target').green4 ('getHello')); }); /////////////////////////////////////////////////////////////////// Question 3) How to pass a parameter to a function. Supposing I have setDarker(value) function that takes a parameter How do I invoke that function. Below is the syntax I hope would work but it doesn't. $().ready(function() { var aGreen = $('#test4 .target').green4(); aGreen.setDarker("big"); }); And finally below is the html code I used for testing, Also a link to the same code is here http://docs.google.com/Doc?docid=0AbxHJxs0V9KvZGRucDVyNnJfMTdmZ3ZmOG4zNA&hl=en Thank you for any help David ////////////////////////////////////////////////////////////////////////////////// <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" lang="en- US"><head profile="http://gmpg.org/xfn/11"> <title>Hacking at 0300 : Understanding jQuery UI widgets: A tutorial</ title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/ 1.3.2/ jquery.min.js" type="text/javascript"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/ 1.7.2/ jquery-ui.min.js" type="text/javascript"></script> <script type="text/javascript"> $.widget('ui.green4', { getLevel: function () { return this._getData('level'); }, setLevel: function (x) { var greenlevels = this._getData('greenlevels'); var level = Math.floor(Math.min(greenlevels.length-1, Math.max (0,x))); this._setData('level', level); this.element.css({background: greenlevels[level]}); }, _init: function() { this.setLevel(this.getLevel()); }, darker: function() { this.setLevel(this.getLevel()-1); }, setDarker: function(value){console.log("value: "+value)}, getHello: function(){"hello"}, lighter: function() { this.setLevel(this.getLevel()+1); }, off: function() { this.element.css({background: 'none'}); this.destroy(); } }); $.ui.green4.defaults = { level: 15, greenlevels: ['#000','#010','#020','#030','#040','#050','#060','#070','#080','#090','#0a 0','#0b0','#0c0','#0d0','#0e0','#0f0', '#fff'] }; </script> <script type="text/javascript"> $().ready(function() { var aGreen = $('#test4 .target').green4(); $('#test4 .target').green4('darker'); }); </script> </head> <body> <div id ="test4"> <p class="target" >This is a test paragraph</p> </div> </body> </html> -- You received this message because you are subscribed to the Google Groups "jQuery UI" group. To post to this group, send email to jquery...@googlegroups.com. To unsubscribe from this group, send email to jquery-ui+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jquery-ui?hl=en.