SmartyのJSONデータを渡しています。これをJavaScript変数options
に適用します。奇妙なJavaScriptの振る舞い、コンバータ関数が呼び出される前の変数の値が変更されています
あなたが私の以前の質問について私が知っていることを知っているのであれば、私はデータが入ってくるのを少しはやる必要があるので、私はchart_convert_dates()
という関数を持っています。よく、options.data
)、それが戻ってくると再び戻ってくる。
私のコードを読んでいると、オプションの変数をデバッグしていることがわかります。の前に、という関数が呼び出されています!
私が関数呼び出しをコメントアウトした場合、その時点で変数は変更されません。
これはChrome、FFで発生します...何が起こっていますか?
{literal}
<script type="text/javascript">
$(document).ready(function() {
// set JS var, this data is coming in from smarty
var options = {/literal}{$options}{literal};
// these should both be exactly the same
debug.debug({/literal}{$options}{literal});
debug.debug(options);
// but the above outputs aren't the same! options has been modified
// by the function below... that hasn't even fired yet!? We can prove
// this by commenting out the following function call
options.data = chart_convert_dates(options.data);
// ... do something else
});
</script>
{/literal}
生成されたコードとは何ですか?おそらくあなたはそこに警告を見ることができます。 – pimvdb
debug.debugの代わりにalertを使用するとどうなりますか?ブレークポイントを設定して値を検査しましたか? –
@Johannes私は、ブレークポイントを入れました、そして、変数が変更されていないうちに、Mattが指摘したように、関数は... 'debug.debug'の問題でなければなりません。ありがとう:-) –