Почему параметр скорости анимации не принимает мою переменную jQuery - PullRequest
1 голос
/ 01 июля 2019

Мне нужна переменная 'gv', чтобы иметь значение кнопки, я сделал это с помощью this.value, и она работала, так как оповещения дают правильные значения. но как только я передал эту переменную параметру speed анимации, она не сработала.

Я попытался дать переменную прямо на анимации, но это тоже не сработало. я также попытался дать случайное значение анимации, чтобы увидеть, было ли это выполнено, и это было. но переменная вообще ничего не делает.

$(document).ready(function() {
  $("button").click(function() {
    var GV = this.value;
    $("#ball").animate({
      bottom: "0px"
    }, GV);
  })
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ball"></div>
<button value="18999" class="btn">butt on</button>

Я ожидаю, что анимация потянет div на дно со скоростью 18999 миллисекунд, но она тянет за 800 миллисекунд

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Вы забыли проанализировать значение GV как целое число (this.value - строка):

 $(document).ready(function() {
    $("button").click(function() {
       let GV = $(this).val();
       console.log(GV);
      $("#ball").animate({
        bottom: "0px"
      }, parseInt(GV));
    })
  });

Код попробовать:

$(document).ready(function() {
  $("button").click(function() {
    var GV = this.value;
    console.log(GV);
    $("#ball").animate({
      bottom: "0px"
    }, parseInt(GV));
  })
});
#ball {
  background-color: red;
  width: 10px;
  height: 10px;
  position: absolute;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ball"></div>
<button value="18999" class="btn">button</button>
0 голосов
/ 01 июля 2019

this.value - это строка. Согласно JQuery Docs строки, допустимые для параметров метода animate(), являются «быстрыми» или «медленными». Любая другая строка будет проигнорирована, и будет использоваться скорость по умолчанию. Используйте parseInt($(this).val()), чтобы получить целочисленное значение элемента кнопки:

var GV = parseInt($(this).val());
...