Woops!
isVisible: function(element) {
var ok = $(element).visible();
if (!ok) {
return false;
}
$(element).ancestors().each(
function(obj){
ok = obj.visible();
if (!ok) throw $break;
}
);
return ok;
}
hehehe... my fault...
[]'s
Labs
On Oct 5, 10:44 am, "labs2.0" <[EMAIL PROTECTED]> wrote:
> Still not like what it does to the Event.cache. If you plan an app
> that should work 8 hours a day, without browser refresh - hey, we are
> moving on to the browser or what ;) - I think that every bit should be
> considered, and in an interface with 3 or 4 active windows at time,
> each one with dozens of comps listening god knows what, and a create/
> destroy cycle of about two or tree windows per minute... I dont
> know...
>
> One other thing that maybe fits beter in fresh new topic:
> element.visible()
> Its just not ok. When I want to know if that element is visible, I
> mean by the users point of view, so, if its display is not none but
> its div container is, well, thats pretty unvisible to me.
>
> So...
>
> isVisible: function(element) {
> var ok = $(element).visible();
> if (!ok) return false;
> $(element).ancestors().each(
> function(obj){
> if (!obj.visible()) throw $break;
> }
> );
> return ok;
> }
>
> ...or please a better optimized way to do that ;)
>
> []'s
> Labs
>
> On Oct 4, 6:09 pm, kangax <[EMAIL PROTECTED]> wrote:
>
> > On Oct 3, 7:26 pm, "Lea Hayes" <[EMAIL PROTECTED]> wrote:
>
> > > This works great, until a form or input element, is within the element
> > > hierarchy. It is mainly a problem with the HTML input tag, because
> > > most of the time (especially in ASP.NET) everything is contained
> > > within the form.
>
> > > <html>
> > > <head>
> > > <title>Test Page</title>
> > > <script type="text/javascript" src="prototype.js"></script>
> > > <script type="text/javascript">
> > > Object.extend(Element.Methods, {
> > > stopObservingNested: function(element) {
> > > element.stopObserving();
> > >
> > > element.descendants().each(Element.stopObserving);
> > > }
> > > });
> > > Element.addMethods();
>
> > > window.onload = function() {
> > > $('testDiv').observe('click', function(event) {
> > > alert('clicked div'); });
> > > $('testSpan').observe('click', function(event) {
> > > alert('clicked span'); });
> > > $('testClear').observe('click', function(event) {
> > > var el = $('testDiv');
> > > el.stopObservingNested();
> > > });
> > > }
> > > </script>
> > > </head>
> > > <body>
> > > <div id="testDiv">
> > > <!-- Form causes "eventName.include is not a function"
> > > prototype.js Line: 3942
> > > <form>
> > > <span id="testSpan">
> > > Hello World!
> > > </span>
> > > </form>
> > > - Div Part!
> > > </div>
>
> > > <input id="testClear" type="button" value="Clear Events" />
> > > </body>
> > > </html>
>
> > I'm an idiot : )
> > This error has nothing to do with the form, but is due to the way
> > `stopObserving` works. We had this "issue" fixed in a trunk but then
> > it was temporarily removed before 1.6.0.3 release. The problem is that
> > `stopObserving` accepts optional 2nd and 3rd arguments and when passed
> > as an iterator (to `each`) it gets called with `value` and `index`
> > arguments that are being passed to an iterator.
>
> > You can use `invoke` meanwhile (don't forget to extend an element
> > first and then return it from the method):
>
> > Element.addMethods({
> > stopObservingNested: function(element) {
> > element = $(element);
> > element.descendants().invoke('stopObserving');
> > return element.stopObserving();
> > }
>
> > });
>
> > --
> > kangax
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---