Thanks for this information. I'm about to rewrite this stuff a bit
anyway due to some other bug, and I'll take your findings into
account. Thanks again.

What I really wonder about is, that this code used to work actually.
This is why this whole logic with filtering an images in there... It
surely needs a proper unit test this time!


--Klaus




On 11 Feb., 02:51, brian <bally.z...@gmail.com> wrote:
> On Tue, Feb 10, 2009 at 4:17 PM, Klaus Hartl <klaus.ha...@googlemail.com> 
> wrote:
>
> > I've created the ticket aready:
> >http://dev.jqueryui.com/ticket/4109
>
> Thanks, Klaus. I think I've sorted this out, actually. Although I'm
> not certain of a fix.
>
> I should have been logging this[0].tagName, not
> inner(this)[0].tagName. The answer was staring me right in the face,
> above that cleanup block:
>
> var inner = function(parent) {
>         var $parent = $(parent), $inner = $parent.find('*:last');
>         return $inner.length && $inner.is(':not(img)') && $inner || $parent;
>
> };
>
> It's the $parent.find('*:last') that's the culprit. Wrapping the img
> in a span does no good because the img, being deepest, will be
> selected every time. Because we don't want the img returned, we'll
> always get $parent--which won't ever be the parent of the IMG because
> that's wrapped in the EM.
>
> I changed that to:
> $inner = $parent.find('*:not(img):last');
>
> This works!
>
> Of course, it fails if I have:
> spinner: '<span><img src="/css/images/misc/spinner.gif" /></span>'
>
> ... because the SPAN will be returned by inner() instead of the desired EM.
>
> So, it seems that there needs to be some other way to get the inner
> element. Maybe the spinner option html fragment needs to be parsed and
> the tags saved in data to better access them later?
>
> Or, what if, instead of having the EM always, you instead made the
> default to be:
> <em>loading ...</em>
>
> Don't wrap the user-provided HTML fragment inside of an EM and store
> the data in the A instead of the EM. ... and, I'm not sure where I'm
> going with this. I'll have to think about it some.
>
> Anyway, this seems to be the problem.

Reply via email to