jQuery に qTip を使ってページを作っていて、次のような処理を書いた。
処理の内容自体は、今回の件とは関係ないので、あまり読まなくても構わない。
問題があったのは、17行。
01: $(document).ready(function(){
02: $("tr.rule").each(function(){
03: $(this).qtip({
04: content: $(this).attr("id"),
05: position: { target: 'mouse'},
06: style: {
07: color: 'black',
08: border: { color: 'coral' }
09: },
10: show: {
11: delay: 100,
12: when: { event: 'mouseover'}
13: },
14: hide: {
15: delay: 100,
16: when: { event: 'mouseout'}
17: },
18: });
19: });
20:});
hide パラメータに対して属性 delay と when を記述して、括弧を閉じて、その後ろに "," がついている。
PHP で配列を記述する際にはこういう書き方が許される(配列の最後の要素の後ろに "," を付けること)ため、つい癖で書いてしまった。
JSON のオブジェクト記述形式としては誤った記述だ。
それだけなら「不注意だな」で済むのだが、これを Firefox がエラーとして処理せず、良心的に解釈してくれてしまったため、このエラーに気付かなかった。
IE ではこの文法エラーはエラーとして処理され、スクリプトの処理が中断されてしまった。
こういう動作の違いがあるのは困る。
どちらかというと、IE の動作が正しいと思った。
処理の内容自体は、今回の件とは関係ないので、あまり読まなくても構わない。
問題があったのは、17行。
01: $(document).ready(function(){
02: $("tr.rule").each(function(){
03: $(this).qtip({
04: content: $(this).attr("id"),
05: position: { target: 'mouse'},
06: style: {
07: color: 'black',
08: border: { color: 'coral' }
09: },
10: show: {
11: delay: 100,
12: when: { event: 'mouseover'}
13: },
14: hide: {
15: delay: 100,
16: when: { event: 'mouseout'}
17: },
18: });
19: });
20:});
hide パラメータに対して属性 delay と when を記述して、括弧を閉じて、その後ろに "," がついている。
PHP で配列を記述する際にはこういう書き方が許される(配列の最後の要素の後ろに "," を付けること)ため、つい癖で書いてしまった。
JSON のオブジェクト記述形式としては誤った記述だ。
それだけなら「不注意だな」で済むのだが、これを Firefox がエラーとして処理せず、良心的に解釈してくれてしまったため、このエラーに気付かなかった。
IE ではこの文法エラーはエラーとして処理され、スクリプトの処理が中断されてしまった。
こういう動作の違いがあるのは困る。
どちらかというと、IE の動作が正しいと思った。