2011-08-30 1 views
0

То, что я пытаюсь достичь, - это изменение способа перемещения игрока в игре JQuery.
Вместо нажатия клавиши я пытаюсь заставить игрока двигаться, если они нажимают/mousedown на текст, с id «left».JQuery mousedown issue

Оригинальный код выглядит следующим образом.

  if(jQuery.gameQuery.keyTracker[65]){ //this is left! (a) 
       var nextpos = parseInt($("#player").css("left"))-5; 
       if(nextpos > 0){ 
        $("#player").css("left", ""+nextpos+"px"); 
       } 
      } 

Мой код выглядит следующим образом, и когда я играю, он просто непрерывно перемещает игрока, оставив без меня что-либо. Он не должен перемещаться влево до тех пор, пока я не нажму на значок «левого» текста.

  if ($('#left').mousedown){ 
       var nextpos = parseInt($("#player").css("left"))-5; 
       if(nextpos > 0){ 
        $("#player").css("left", ""+nextpos+"px"); 
       } 
      } 

ответ

1

Это:

if ($('#left').mousedown){ 

всегда будет истинным. Вы проверяете, имеет ли $() свойство mousedown, и это всегда будет потому, что все объекты jQuery имеют метод mousedown. Вероятно, вы хотите привязать обработчик событий mousedown:

$('#left').mousedown(function(e) { 
    //... 
}); 
+0

Спасибо! Одна вещь, теперь она не движется плавно с ослаблением, она движется через неровно. Он также не постоянно перемещается, если я держу мышь на #left? – MartinH23

+0

@ MartinH23: Трудно сказать, что происходит без функционального примера. –

+0

Надеюсь, это поможет! http://jsfiddle.net/LZeqG/2/ еще раз спасибо! так много – MartinH23