2015-10-15 63 views
-3

我已經做了一個簡單的keylistening代碼,重點是當我按下左箭頭,當右箭頭被按下時顯然向右移動div。我想將#divcar的Left css值賦給一個變量。這是我的代碼:jquery變量的左css值

<!doctype html> 
<html lang="en"> 

    <head> 
     <meta charset="UTF-8" /> 
     <title>Car game</title> 
     <style type="text/css" media="screen"> 
      #divcar { 
       position: absolute; 
       top: 60%; 
       left: 49%; 
       height: 70px; 
       width: auto; 
      } 
      #car { 
       height: 70px; 
       width: auto; 
      } 
     </style> 
     <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       var left = $('#divcar').left(); 
       $(document).keydown(function(e) { 
        if (e.keyCode == 37) { 
         alert("left pressed"); 
         $("#divcar").css('left', left - '10%'); 
         return false; 
        } 
        if (e.keyCode == 39) { 
         alert("right pressed"); 
         return false; 
        } 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <div id="divcar"> 
      <img src="car_topview.png" alt="Car" height="70" id="car" /> 
     </div> 
    </body> 

</html> 

的問題是,當我運行的代碼,我得到這個錯誤:類型錯誤:$(...)左邊是不是一個函數。

我該如何解決這個問題

感謝

+1

直接90%(即0.9),把它簡化更換'。左()'用函數實際存在...例如'.css('left')'。 –

+1

噢,'-10%'不起作用。 –

回答

1

的問題是這一行:

var left = $('#divcar').left(); 

「左」 是不是一個jQuery函數。您需要使用:

var left = $('#divcar').css('left'); 
0

的第一個問題是,$('#divcar').left()不是一個函數(說的)..

而且$("#divcar").css('left', left - '10%');不會爲left - 10%工作不是一個正確的號碼。

你的代碼應該是這樣的:

$(document).ready(function(){ 
    var left = $('#divcar').css('left') * 1, // use *1 to be sure that left is a number 
     offset = 0.1 * left; // get the 10% i.e. 10/100 = 0.1 
    $(document).keydown(function(e){ 
     if (e.keyCode == 37) { 
      alert("left pressed"); 
      $("#divcar").css('left', left - offset); 
      return false; 
     } 
     if (e.keyCode == 39) { 
      alert("right pressed"); 
      return false; 
     } 
    }); 
}); 

您還可以通過獲得的left

$(document).ready(function(){ 
    var newleft = $('#divcar').css('left') * 0.9; 
    $(document).keydown(function(e){ 
     e.preventDefault(); 
     if (e.keyCode == 37) { 
      alert("left pressed"); 
      $("#divcar").css('left', newleft); 
     } 
     if (e.keyCode == 39) { 
      alert("right pressed"); 
     } 
    }); 
}); 
+0

謝謝你幫助我使用var,但你所做的代碼段不工作。當我按左時,它不會移動。 – SwegreDesigns

+0

你可以做一個簡單的jsfiddle嗎? – SwegreDesigns