If you generate the IDs dinamically and somehow an empty string is
passed as the selector the document will be selected, so all these are
the same:
$("")[0];
$()[0];
$(document)[0];

On Dec 27, 9:25 pm, Stephen <sathoma...@gmail.com> wrote:
> Sorry to bother folks with what is probably a silly question, but I
> can't quite figure out the scope for livequery matched functions. For
> example, if I have the following:
>
> $("#id:not(.inactive)").livequery(function() {alert(this);})
>
> Then the alert shows <this> to be the matched selector, which is what
> I would expect.
>
> But if I have the following:
>
> $("#id").not(.inactive).livequery(function() {alert(this);})
>
> Then the alert shows <this> to be the entire document.
>
> What's the reason for the difference in behavior?
>
> If anyone can explain this behavior, then it will probably let me
> figure out my real problem. In case someone has a lot of spare time,
> though, and wants to help with the root problem, here it is. I'm using
> ajax to load a lot of dynamically generated content, and I'm doing a
> fair bit of livequery processing on that content. The processing
> includes collapsing various sections of the content by hiding them.
> With a straightforward implementation, the browser briefly displays
> the entire (expanded) content before livequery has a chance to
> complete it's processing, so users are treated to an annoying "peek-a-
> boo" effect as the full content briefly appears and then collapses
> down to something more manageable. My approach for solving this
> problem is to deliver the content within a <div> wrapper with a css
> property of "display:none". As soon as the content arrives, I add a
> livequery handler that calls show() on the <div> wrapper. Since this
> handler goes to the end of the livequery queue, it fires only after
> all the other livequery processing is complete. Works like a charm on
> test pages where all the IDs are hard-coded. On the real page, though,
> the IDs aren't hard-coded, so I have to dynamically figure out which
> elements to show. I'm stuck on trying to find a handle to the content
> so that I can show it. I would expect <this> to be the delivered
> content in the matched function, but, instead, it's the entire
> document.
>
> TIA, Stephen
>
> P.S. This is on Safari if it matters. I've briefly tried Firefox and
> it seems to behave the same way, so I haven't done exhaustive testing
> other than in Safari.

Reply via email to