1

範囲モードで jQuery スライダーの人気のある「undefined のメソッド 'addClass' を呼び出すことができません」をデバッグしようとしており、いくつかの奇妙なことを見つけています。このエラーは、値が整数ではなく文字列として渡されたことが原因であると言う人もいますが、私の値は検証済みの整数であり、アイデアがありません。そのため、jQuery UI を試してデバッグし、すぐに行き止まりになりました。

画像を参照してください: ここに画像の説明を入力

ご覧のとおり、開発ツールでオプション オブジェクトを展開すると、options.values は 2 つの NaN の配列になっています。ただし、console.log(options.values) の場合、適切な数値を使用して実際の配列を取得します。さらに悪いことに、たとえば console.log(options.values[0]) で直接ログに記録すると、適切な値が得られます。

ただし、スライダーが値を要求すると、常に NaN が返されます。これは、範囲スライダーの最も近いハンドルを計算するときに明らかです。NaN は非常に有毒であり、ループ全体を汚染し、未定義の最も近いハンドルを返すため、前述の「addClass」エラーが発生します。 .

画像の状況はなぜ起こるのでしょうか?なぜそれが起こり得るのですか?どうやら 2 つの同一のプロパティには、アクセス方法に応じて異なる値が含まれているようです。

4

1 に答える 1

2

Chrome コンソールは少し扱いに​​くいです。に表示されるの状態Objectは、ログに記録された時点の状態を必ずしも反映しているわけではありません。これは「更新された」ビューである可能性があります。

これで主な問題が解決するわけではありませんが、オブジェクトのログを記録しても、多くの状況で Chrome でのデバッグにあまり役立たないことは明らかです。ブレークポイントを選択することをお勧めします。

つまり、コードのどこかでオブジェクトが変更されているようです。

于 2013-06-29T18:00:40.740 に答える