メモリーリークパターンと言われても・・・
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>test</title> <p id="pp"> <input type="text" id="y" size="6"> <input type="text" id="m" size="4"> <input type="text" id="d" size="4"> </p> <p id="qq"> <input type="text" id="yy" size="6"> <input type="text" id="mm" size="4"> <input type="text" id="dd" size="4"> </p> <script type="text/javascript"> //@cc_on var AutoFocus = function (target, css_on, css_off) { var Listener = (function(css0_on, css_off) { return function (evt) { var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/; if ( /INPUT|TEXTAREA/.test(e.nodeName) ) { if (/*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/ === evt.type) e.style.cssText = css_on; if (/*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/ === evt.type) e.style.cssText = css_off; } }; })(css_on, css_off); target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/ /*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/, Listener, true); target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/ /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, Listener, true); /*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/ 'unload', function (evt) { /*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/ 'unload', arguments.callee, false); target./*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/ /*@if (@_jscript) 'focusin' @else@*/ 'focus' /*@end@*/, Listener, true); target./*@if (@_jscript) detachEvent('on' + @else@*/ removeEventListener(/*@end@*/ /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, Listener, true); }, false); } AutoFocus(document.getElementById('pp'), 'background-color:#fee',''); AutoFocus(document.getElementById('qq'), 'background-color:#eef',''); </script>
targetで受けてるのが悪いんだと思うけど、どうしよう?