0

プラグインのデフォルトを定義したいのですが、これは JavaScript コードです:

var opts = {
    'width': 957,
    'height': 590,
    'left': ($(window).width() / 2) - (this.width),
    'top': ($(window).height() / 2) - (this.height)
};​

しかし、opts.left戻りNaNます。問題は何ですか?

編集:オブジェクトでオブジェクトのを使用したい。

4

2 に答える 2

0

this.width数値ではありません。

NaN 値の起源

NaN 値は、算術演算の結果が未定義または表現不可能な値になる場合に生成されます。このような値は、必ずしもオーバーフロー状態を表すとは限りません。NaN は、プリミティブな数値が使用できない非数値の数値への強制変換の試みによっても発生します。


コメントに基づいて更新します。

thisオブジェクトではなく、関数の呼び出し元です。そのため、プロパティthis.widthの は提供されません。width

ワーキングライブデモ

于 2012-04-16T21:19:40.723 に答える
0

ほとんどのthis.width場合undefined、数値以外の値が返されます。

例: 100 - undefinedあなたを返しますNaN

$(this).width()とを使ってみてください$(this).height()

var opts= {
      'width': 957,
      'height': 590,
      'left': ($(window).width()/2)-($(this).width()),
      'top':  ($(window).height()/2)-($(this).height())
};

上記はthis、有効なコンテキストで提供されるはずです。

于 2012-04-16T21:20:27.043 に答える