0

我不明白为什么这段代码适用于 pc 和 android,但不适用于 iphone / ipad。

    var search_type = [<?php foreach($surveys as $sur) {
  echo "'" . $sur->id_flashpinion . "', ";
  end($surveys);
    if ($sur === key($surveys))
        echo "'" . $sur->id_flashpinion . "'";
}
?>];
for (var i = 0; i < search_type.length; i++) {
  let ids = '#volume' + search_type[i];
  var vote = $(ids).data("voted");
  if(vote != '') {
    $(ids).slider({
        min: 0,
        max: 100,
        value: vote,
            range: "min",
        slide: function(event, ui) {
            return false;
        }
        });
        var myVolume = vote;
        let volumeThreshold = [20, 40, 60, 80, 101]
        let volumeClasses = ["v0", "v1", "v2", "v3", "v4"]
        let classIndex = volumeThreshold.findIndex((threshold) => {return myVolume < threshold});
        changeClassTo(volumeClasses[classIndex]);

      function changeClassTo(className) {
        $(ids).removeClass();
        $(ids).addClass("volume " + className);
      }
  } else {
    $(ids).slider({
        min: 0,
        max: 100,
        value: 0,
        range: "min",
        slide: function(event, ui) {
          changeSlider(ui.value);
        },
        stop: function(_, ui){
          var id_flashpinion = ids.replace(/[^0-9]/g,'');
          vote = ui.value;
          $.ajax({
             type: "POST",
             url: '/slider/vote',
             data:{id_flashpinion:id_flashpinion, vote:vote}
        });
        $(ids).on("slide", function (event, ui) { return false; });
    }
      });


    function changeSlider(myVolume) {
      let volumeThreshold = [20, 40, 60, 80, 101]
      let volumeClasses = ["v0", "v1", "v2", "v3", "v4"]
      let classIndex = volumeThreshold.findIndex((threshold) => {return myVolume < threshold});
      changeClassTo(volumeClasses[classIndex]);
    }

    function changeClassTo(className) {
      $(ids).removeClass();
      $(ids).addClass("volume " + className);
    }
  }

}

完整的代码在这里https://codepen.io/dnl_re/pen/ZJzvJg 我还添加了 jquery ui touch punch,但它仍然不起作用。

我做了一些测试,似乎 safari 不能很好地解释初始值,但我不知道要改变什么,因为我不太擅长 javascript

4

0 回答 0