2016-05-26 5 views
0

私はいくつかの衝突を把握しようとしていますが、コンパイラは.slice()が関数ではないというエラーを表示し続けます。コードは次のとおりです。.slice()は文字列で呼び出されても関数ではありません

var topPos1 = $('#player').css("top"); 
var rightPos1 = $('#player').css("right"); 
var topPos2 = $('#player').css("top"); 
var rightPos2 = $('#player').css("right"); 
var pos = topPos1.indexOf('px'); 
topPos1 = parseInt(topPos1.slice(0,pos)); 

My jQueryがロードされています。

+0

を保存します;'。これは意味をなさない。 –

+0

それはあまりにも不条理ではない、あなた自身の操作を使って変数の値を変更する。 – lithium

+1

topPos1は未定義ですか? – Spouark

答えて

0

はたぶんあなたのtopPos1、何も返しませんtopを値に割り当てると、nullまたはNaNとなります。

結果が正しいかどうかを確認するには、値をログに記録する必要があります。

+0

topPos1はすでに値をチェックしています – Kweldulf

+2

'topPos1'が文字列の場合、それをスライスする必要はありません:' parseInt( "150px")= 150'。 – lithium

0

あなたが直接あなたがsliceこのような

後の文字列に変換することができ、番号をスライスすることはできません: $('#player')はのためのCSS値を持っていない場合

topPos1 = parseInt(topPos1.toString().slice(0,pos)); 
+0

'$( '#player')css(" top "); - 何も設定されていない場合は '100px'、または 'auto'などです。 –

+0

topPos1は 'px'で終わる文字列なので、スライスしなければならないので、値を取得したい。 – Kweldulf

0

あなただけ.replace('px', '')を使用することができます - あなたは `topPos1 =のparseInt(topPos1.slice(0、POS))を使用している理由、それはあなたに1つの関数呼び出し

関連する問題