当前位置: 首页 > 知识库问答 >
问题:

jQuery滑块通过AJAX发送错误值

徐鸿文
2023-03-14

我正在使用jQuery滑块插件。滑块的当前选定值应该用AJAX发送到服务器端脚本。

目前我有一个错误的行为。当前选择的值总是在用Ajax发送的值之前或之后的一个值。

例如:如果滑到值5/50,它将向服务器端脚本发送“6”而不是“5”。

我做了一把JS小提琴。只需在developers network选项卡下查看。

  // Slider Script

    $("#slider-vertical").slider({
        orientation: "horizontal",
        range: "min",
        min: 1,
        max: 50,
        value: 50,
        slide: function (event, ui) {
            $("#amount").val(ui.value);
        },
    });
  
  $("#amount").val($("#slider-vertical").slider("value"));
  
  // Get Response
    $('#slider-vertical').on('slide', getResponse);
    getResponse(0);

    function getResponse() {
        let itemlevel2 = $("#slider-vertical").slider("value");

        ajaxManager.add({
            type: "GET",
            cache: "true",
            url: "itemscript.php",
            data: {
                "itemlevel": itemlevel2
            },
            success: function (data) {

            }
        });
    }
});

共有1个答案

喻增
2023-03-14

为了纠正这种行为,您可以使用stop事件仅在滑块停止移动时进行AJAX调用。这样做的另一个好处是,不会让您的服务器充斥着对滑块所移动的每个值的请求。试试看:

null

jQuery(function($) {
  $("#slider-vertical").slider({
    orientation: "horizontal",
    range: "min",
    min: 1,
    max: 50,
    value: 50,
    slide: function(event, ui) {
      $("#amount").val(ui.value);
    },
    stop: getResponse
  });

  $("#amount").val($("#slider-vertical").slider("value"));
  getResponse(0);

  function getResponse() {
    let itemlevel2 = $("#slider-vertical").slider("value");
    console.log(itemlevel2);
    // AJAX here...
  }
});
.ui-widget.ui-widget-content {
  border: 1px solid #c5c5c5;
  width: 100%;
}

.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header {
  border: 1px solid #444 !important;
  background: none !important;
}

.ui-slider .ui-slider-handle {
  position: absolute;
  z-index: 2;
  width: 1.2em;
  height: 1.2em;
  cursor: default;
  -ms-touch-action: none;
  touch-action: none;
}

.ui-widget.ui-widget-content {
  border: 1px solid #c5c5c5;
  background-color: #353232;
}

.ui-slider-horizontal .ui-slider-range-min {
  left: 0;
  background-color: #817373!important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<p>
  <label class="item-slider" for="amount">Stufe:</label>
  <input class="item-slider" readonly id="amount">/
  <input class="item-slider" readonly id="amount2" value="50">
</p>
<div id="slider-vertical" style="height: 10px;"></div>
 类似资料:
  • 问题内容: 有一行可以一次只容纳三个图像,但是我在服务器中有几个图像,我想全部取走。所以在这种情况下,我需要图像滑块。 让说,有10幅图像,例如和行和它包含只有三个非常久远。我想要的是?单击slider_button时,图像应沿按钮方向一一向前。假设,如果我点击则应该行,而不是。因此,有一幅图像被转发到左方向,而另一幅新图像被提取为 请给我一些提示。我想从服务器获取图像会更有用,对吗? 问题答案:

  • 问题内容: 嗨,我在下面的脚本中遇到了问题。我认为问题在于需要通过AJAX发送到php的数据。 jQuery的 并且,PHP 但是,如果我这样做 并改变这个 脚本工作正常。我需要做些什么才能使以上两个脚本都能正常工作?提前致谢。 问题答案: 我将我的评论作为答案。 除了使用已弃用的jQuery API外,其他人没有指出的是以下内容: 您在下一行中正在做什么: 是您向服务器保证HTTP实体将是JSO

  • 问题内容: 我有一个内置的javascript,它可以执行以下操作:通过ajax-> php-> sql获取内容,并在单击内容后在index.php上显示它,将显示新内容。 现在,我想拥有一个在将内容单击到php之后发送数据的函数,该函数将在db中执行某些操作。如何创建将发送数据的功能?谢谢! 这是我的显示内容的代码: }); }` 问题答案: 您可以通过在jQuery.ajax 设置中包含值,将

  • 任何指针都会有帮助,我试着玩contentTypes,但还是没有运气

  • 下面是我使用的JQUERY脚本,我将值从slider发送到,然后输入,然后在PHP中使用,以获取请求。 我想要一些帮助,在保持刷新后滑块上的值这里是我的表单和PHP 我不太了解jquery,因此我尝试了jquery原始网站上的滑块,我可以从数据库中检索结果,但我不知道如何保持滑块值不变,有没有办法从url获取滑块值,比如我想要“500”。 请不要告诉我我使用OBSOLETE MYSQL,它将从PH

  • 问题内容: 好的,我已经看到有关此问题的大量问题,但实际上没有一个答案对我有用,这是我的AJAX: var“ jsonFilters”包含一个包含以下数据的数组: 这是我的控制器: jsonFilters始终为null …我也尝试过添加到AJAX调用中…但是那实际上并没有做任何事情 最后,该类的结构如下: 关于我可能会丢失或正在发生的事情有什么想法吗? 到目前为止我尝试过的事情: 使用JSON.s