| | 979 | if (Prototype.Browser.IE) { |
|---|
| | 980 | $w('remove update replace').each(function(method){ |
|---|
| | 981 | |
|---|
| | 982 | var getNodes = (method == 'update')? function(element){ |
|---|
| | 983 | return $(element).childElements(); |
|---|
| | 984 | } : function(element){ |
|---|
| | 985 | return [element=$(element)].concat(element.childElements()); |
|---|
| | 986 | }; |
|---|
| | 987 | var stopObservers = function(element){ |
|---|
| | 988 | var nodes = getNodes(element), i = nodes.length; |
|---|
| | 989 | while(i) Event.stopObserving(nodes[--i]); |
|---|
| | 990 | return element; |
|---|
| | 991 | } |
|---|
| | 992 | var wrapper |
|---|
| | 993 | switch(method){ |
|---|
| | 994 | case 'remove': wrapper = function(proceed, element, stopObserving){ |
|---|
| | 995 | proceed(stopObserving? stopObservers(element) : element) |
|---|
| | 996 | }; break; |
|---|
| | 997 | |
|---|
| | 998 | case 'replace': wrapper = function(proceed, element, content, stopObserving){ |
|---|
| | 999 | proceed(stopObserving? stopObservers(element) : element, content) |
|---|
| | 1000 | }; break; |
|---|
| | 1001 | |
|---|
| | 1002 | case 'update': wrapper = function(proceed, element, content){ |
|---|
| | 1003 | proceed(stopObservers(element), content) |
|---|
| | 1004 | }; |
|---|
| | 1005 | } |
|---|
| | 1006 | Element.Methods[method]= Element.Methods[method].wrap(wrapper); |
|---|
| | 1007 | }); |
|---|
| | 1008 | } |
|---|
| | 1009 | |
|---|