Sorry, I have probably didn't enplane myself properly. I'm running it once, but when I'm trying to track "jQ (this).selector" (by alert), it alerts me twice in the same run: once with table and second is empty...
On Feb 7, 1:11 am, jQuery Lover <ilovejqu...@gmail.com> wrote: > But you are saying first time you run it, it gives you 'table', the > second time you run it, it says it's not a table... > > This means, the first time it is getting to the return statement... Or > did I get you wrong ? > > ---- > Read jQuery HowTo Resource - http://jquery-howto.blogspot.com > > On Sat, Feb 7, 2009 at 2:02 PM, ShurikAg <shuri...@gmail.com> wrote: > > > But it does not even get to the return statement... > > > On Feb 7, 12:47 am, jQuery Lover <ilovejqu...@gmail.com> wrote: > >> Maybe because you are return reference to the function not a jQuery object: > > >> > return this; > > >> Read this > >> post:http://jquery-howto.blogspot.com/2008/12/how-to-create-jquery-plugin-... > > >> It explains why you need to return jQuery object. > > >> On Sat, Feb 7, 2009 at 1:28 PM, ShurikAg <shuri...@gmail.com> wrote: > > >> > Question related to the same plugin: > > >> > Plugin code: > >> > jQ.fn.table = function(options, titles, data){ > >> > if(jQ(this).length == 0){ > >> > //try to find at least one element > >> > $.log("Matching element "+jQ(this).selector+" was > >> > not found!") > >> > return null; > >> > } > >> > //validate that this element is unique i=on hte page > >> > if(jQ(this).length > 1){ > >> > $.log("The element's selector must be unique on > >> > the page!"); > >> > return null; > >> > } > >> > //check if the elemment is a table > >> > //alert(jQ(this).selector); > >> > if(!jQ(this).is('table')){ > >> > $.log("The element must be valid table element!"); > >> > return null; > >> > } > >> > /** > >> > * Save the selector for further > >> > */ > >> > Selector = jQ(this).selector; > > >> > //extend defaults > >> > Options = jQ.extend({}, Defaults, options); > >> > //init additional data > > >> > //init UI > >> > jQ.fn.table.initUI(); > > >> > return this; > >> > }; > > >> > and I'm running it as: > >> > var $table = $('table'); > >> > $table.table(); > > >> > and I'm always getting: "The element must be valid table element!" > > >> > I've tried to trace what the selector is; and once it is "table" but > >> > the second time (in he same run) is null. Why there are two entries to > >> > this function anyways? I have only one table on the page.