I have just reported this as a potential bug at the Lighthouse website.
2008/10/10 Lea Hayes <[EMAIL PROTECTED]>:
> Hi again,
>
> Unless I am missing something, it would appear that stopObserving does
> not work at all in Google Chrome!
>
> 2008/10/5 Lea Hayes <[EMAIL PROTECTED]>:
>> Yes, that solves the problem, it now works in IE7/8+FF3.
>>
>> Sadly in Chrome it doesn't appear to work at all. Clicking the stop
>> button does absolutely nothing, yet the method is being called because
>> I tried sticking a test message box in there. The box appears, but the
>> events are simply not stopped. I tried going to the Chrome console to
>> find out if any errors were being reported, and it breaks even earlier
>> saying that '.observe' is not a function.
>>
>> <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) {
>> alert('about to stop events...');
>> element.descendants().invoke('stopObserving');
>> element.stopObserving();
>> alert('stopped events! - supposidly');
>> return element;
>> }
>> });
>> 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>
>> <span id="testSpan">
>> Hello World!
>> </span>
>> </form>
>> - Div Part!
>> </div>
>>
>> <input id="testClear" type="button" value="Clear Events" />
>> </body>
>> </html>
>>
>> 2008/10/4 kangax <[EMAIL PROTECTED]>:
>>>
>>> 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
-~----------~----~----~----~------~----~------~--~---