Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在输入范围上禁用鼠标滚动_Jquery_Range - Fatal编程技术网

Jquery 如何在输入范围上禁用鼠标滚动

Jquery 如何在输入范围上禁用鼠标滚动,jquery,range,Jquery,Range,我有一个范围输入,我想在单击它时选择它的值。 问题是,如果单击范围,将鼠标放在范围顶部并滚动鼠标滚轮,则会更改范围的值。 我已经尝试过css和jquery,但我不知道该怎么做。 我还想定义一个默认值来启动滚动,但我不管理如何启动 这里是链接 非常感谢 您需要使用事件侦听器来侦听页面滚动、用户输入等的更改/交互。在下面的示例中,我将鼠标悬停和滚轮事件与jQuery的on方法结合使用。有关详细说明,请参阅代码中的注释: $function{ //滑块和标签 常数 滑块=$range\u year\

我有一个范围输入,我想在单击它时选择它的值。 问题是,如果单击范围,将鼠标放在范围顶部并滚动鼠标滚轮,则会更改范围的值。 我已经尝试过css和jquery,但我不知道该怎么做。 我还想定义一个默认值来启动滚动,但我不管理如何启动

这里是链接


非常感谢

您需要使用事件侦听器来侦听页面滚动、用户输入等的更改/交互。在下面的示例中,我将鼠标悬停和滚轮事件与jQuery的on方法结合使用。有关详细说明,请参阅代码中的注释:

$function{ //滑块和标签 常数 滑块=$range\u year\u油炸圈饼, sliderLabel=$selected\u year; //此变量将是用户将鼠标移到的任何元素 让currentElement=null; //将事件监听器附加到文档以用于鼠标悬停和控制盘事件 $document .onmouseover,函数e{ //当鼠标移动到文档中的某个元素上时,请设置currentElement currentElement=e.target; } .onwheel,function{ //使用鼠标滚轮时,滚轮事件将被触发。 // //如果currentElement是滑块,则其ID属性将与相同 //在顶部定义的滑块变量。 如果currentElement&¤tElement.id==slider.attrid{ //调用preventDefault将取消默认行为,即滚动 e、 防止违约; console.logcurrent元素为滑块;防止滚动; } }; //我们还可以附加事件侦听器,而不是使用onchange HTML属性 //使用“输入”事件添加到滑块。 slider.oninput,函数{ //当前值 常量sliderValue=$this.val; //将标签的文本设置为该值 sliderLabel.textsliderValue; } //对于本例,手动触发输入事件以更新滑块标签 slider.trigger输入; }
我有一个问题,为什么使用事件监听器比使用onchange从html触发事件更好?我认为这种方式对于封装和分离关注点更好,还有其他原因吗?我个人认为使用事件侦听器比将JavaScript与HTML混合要干净得多,但两者都很好。请参阅此处的更多讨论:现在我也尝试禁用拖动。我尝试了很长时间,但我不能。如果你能帮我编辑你的代码,防止拖拽,那就太酷了。如果你禁用了滑动条上的滚动/拖拽,那么你基本上已经删除了所有使它成为滑动条的东西。。。也许你应该使用不同的输入类型?这里的主要目标是什么?…在用户停止拖动时获取值,并在用户拖动时显示值…-这是使用输入事件时的默认行为,请参见此处的示例:。也许我误解了你的要求。
    <input type="range" id="range_year_donut" min="" max="" value="" onchange="slideyear()">
            <span id="chosen_year"></span>


   var range_year = d3.select("#range_year_donut");

    d3.csv("http://raw.githubusercontent.com/cvrnogueira/CODWorkData/master/database/final_data_set.csv").then(function(data){

        let max = d3.max(data, function(d) {return +d.year});
        let min = d3.min(data, function(d) {return +d.year});
            range_year.attr("min", min)
            .attr("max", max)
            .attr("value", max);

     });

    function slideyear(){
        let year = range_year.node().value;
    }