2011-06-21 37 views
0

如何獲取元素的寬度。將其轉換爲百分比(%)。重置元素寬度+1。我喜歡jplayer音量也由鼠標控制。 問題是將像素寬度作爲數字(整數)。獲取元素的像素寬度並將其轉換爲數字

.jp -volume-bar-value以%爲單位設置寬度,但jquery在px中得到它,所以必須轉換爲%(比率1.66)。

若要在var loud上使用parseInt似乎不起作用(得到不同的數字)。 誰可以幫忙?

 $('#volume-hold').bind('mousewheel', function(event, delta) { 
     var loud = $('.jp-volume-bar-value').css('width'); 
     var load = loud * 1.666666; //max px/100 
     var dir = delta > 0 ? 'Up' : 'Down', 
      vel = Math.abs(delta); 
     if (dir === 'Up') { 
      var loud = loud + 1; 
      $('.jp-volume-bar-value').css('width', '('+loud+')'); 
     }else{ 

     }    
     return false; 
    }); 
+1

parseInt函數應該肯定工作。 –

+0

當你再次設置寬度時,它應該是$('。jp-volume-bar-value')。 你可以使用parseInt($('。jp-volume-bar-value')。width())獲得寬度 –

+0

@AR謝謝你,過了一會兒吧。也許我在想困難.... – Rob

回答

0

有可能parseInt不工作,因爲您沒有設置基地。嘗試:

var result = parseInt(loud * 1.666, 10); //sets parseInt to base 10 

此外,您可能希望確保你得到從jQuery的回值是一個數字:

var width = Number($('#element').css('width')); 

,那麼你可以嘗試parseInt

+1

我有一種感覺OP設置使用百分比的寬度,但得到像素回來,所以它不是「正確的」。我猜是。見http://jsfiddle.net/LKscV/ –

+0

是的,你可能是對的。 OP沒有給出太多的細節,所以我的第一個直覺是典型的'parseInt'基本錯誤 – Jason

+0

使用10 * 1.66的基礎似乎工作!得到它了。謝謝 – Rob