Thank you. It's was help me a lot. I am writing a small tooltip plugin, and I use it to now when the user click on an element inside the tooltip
Thank you again. On 12 פברואר, 00:05, mkmanning <michaell...@gmail.com> wrote: > I just wrote this in response to this thread and haven't checked it > thoroughly (other than my head, which has been known to be buggy). > I prefer to be able to pass in a jQuery object as the parent: > > jQuery.fn.childOf = function(a){ > return (this.length === this.map(function(){if($.inArray > (this,a.children())!=-1){return this;}}).length); > > }; > > Test in Firebug: > <div id="gramps"> > <ul id="pops"> > <li id="kid1"><span id="subkid1">one</span></li> > <li id="kid2"><span id="subkid2">two</span></li> > <li id="kid3"><span id="subkid3">three</span></li> > <li id="kid4"><span id="subkid4">four</span></li> > </ul> > </div> > console.log( $('#kid1, #kid2, #kid3').childOf( $('#gramps') ) ); // > logs false > console.log( $('#kid1, #kid2, #kid3').childOf( $('#pops') ) ); //logs > true > console.log( $('#kid1, #kid2, #kid3, #subkid3').childOf( $ > ('#pops') ) ); //logs false > console.log( $('#pops').childOf( $('#gramps') ) ); //logs true > console.log( $('#pops').childOf( $('#pops') ) ); //logs false > > On Feb 11, 1:45 pm, Ricardo Tomasi <ricardob...@gmail.com> wrote: > > > > > 'return true' inside the each callback works like a 'continue', > > skipping to next iteration. The value is never returned to the outside > > scope (would break chaining). > > > cheers, > > - ricardo > > > On Feb 11, 6:33 pm, Ami <aminad...@gmail.com> wrote: > > > > You can shave a few ms, and memory: > > > *************************************** > > > jQuery.fn.childOf = function(a){ > > > this.each(function(){ > > > if (this.parentNode == a) return true; > > > }); > > > return false;}); > > > > *************************************** > > > > On Feb 11, 8:18 pm, Ricardo Tomasi <ricardob...@gmail.com> wrote: > > > > > You can shave a few ms off that by using the current object itself, > > > > and cacheing the other element: > > > > > jQuery.fn.in = function(a){ > > > > var a = $(a)[0]; > > > > return !!this.parents().filter(function(){ return this === > > > > a;}).length; > > > > > }; > > > > > Also be aware that this actually checks if the element is a > > > > *descendant* of the other, not just achild. For a simple (and faster) > > > > 'childOf' check use this: > > > > > jQuery.fn.childOf = function(a){ > > > > var p = false; > > > > this.each(function(){ > > > > if (this.parentNode == a) p = true; > > > > }); > > > > return p; > > > > > }; > > > > > cheers, > > > > - ricardo > > > > > On Feb 11, 1:56 pm, Ami <aminad...@gmail.com> wrote: > > > > > > The Best solution: > > > > > > I have writed a very small plugin (1 line) for that, by using the code > > > > > of Richard > > > > > > jQuery.fn.childOf=function(a){var b=this;return ($(b).parents().filter > > > > > (function() { return this === $(a)[0]; }).length )} > > > > > > For Example: > > > > > $("div").childOf(document.body) > > > > > $("div").childOf($(document.body)) > > > > > > I hope that there is no bugs in this code. > > > > > > On 22 ינואר, 11:25, "James Hughes" <j.hug...@kainos.com> wrote: > > > > > > > Hi, > > > > > > > This is probably a really easy question an I apologise if it appear > > > > > > stupid but I am clueless right now. Given 2 jQuery objects (a,b) > > > > > > how can I tell if b is achildof a? > > > > > > > James > > > > > > > -------------------------------------------------------------------- > > > > > > This e-mail is intended solely for the addressee and is strictly > > > > > > confidential; if you are not the addressee please destroy the > > > > > > message and all copies. Any opinion or information contained in > > > > > > this email or its attachments that does not relate to the business > > > > > > of Kainos > > > > > > is personal to the sender and is not given by or endorsed by > > > > > > Kainos. Kainos is the trading name of Kainos Software Limited, > > > > > > registered in Northern Ireland under company number: NI19370, > > > > > > having its registered offices at: Kainos House, 4-6 Upper Crescent, > > > > > > Belfast, BT7 1NT, > > > > > > Northern Ireland. Registered in the UK for VAT under number: > > > > > > 454598802 and registered in Ireland for VAT under number: 9950340E. > > > > > > This email has been scanned for all known viruses by MessageLabs > > > > > > but is not guaranteed to be virus free; further terms and > > > > > > conditions may be > > > > > > found on our website -www.kainos.com