Javascript 通过鼠标向下(拖动)输入更改值在Chrome中不起作用

Javascript 通过鼠标向下(拖动)输入更改值在Chrome中不起作用,javascript,jquery,html,google-chrome,Javascript,Jquery,Html,Google Chrome,只有在按下并从上到下移动“咔嗒”时,它才会增加或减少,这是正常操作。 我有一个脚本,允许从输入的增量和减量值中拖动,这在Firefox中运行良好,但在Chrome中无法正常工作,有人能纠正这个错误吗(在Chrome中) 我连剧本都有问题。它只在firefox中起作用,但在Chrome中不起作用 例如: 视频:(左:chrome/右:firefox) var clicking=false; $('.vamoAlSubibaja').mousedown(函数(){ 单击=真; }); $(文档).m

只有在按下并从上到下移动“咔嗒”时,它才会增加或减少,这是正常操作。 我有一个脚本,允许从输入的增量和减量值中拖动,这在Firefox中运行良好,但在Chrome中无法正常工作,有人能纠正这个错误吗(在Chrome中)

我连剧本都有问题。它只在firefox中起作用,但在Chrome中不起作用

例如:

视频:(左:chrome/右:firefox)

var clicking=false;
$('.vamoAlSubibaja').mousedown(函数(){
单击=真;
});
$(文档).mouseup(函数(){
点击=假;
})
var i=0;
var y=0;
$('.vamoAlSubibaja').mousemove(函数(my){
如果(单击==false){
返回
}否则{
//更改值

如果(my.pageY它不工作,因为您正在将mousemove事件分配给div,而不是文档

如果希望每个div独立响应,则需要为变量指定一个值,以了解单击了哪个div。这样,当鼠标移动时(单击其中一个div后),可以将函数指定给该特定div

此演示仅修复mousemove,以便您了解如何解决主要问题

var clicking=false;
$('.vamoAlSubibaja').mousedown(函数(){
单击=真;
});
$(文档).mouseup(函数(){
点击=假;
})
var i=0;
var y=0;
$(文档).mousemove(函数(my){
如果(单击==false){
返回
}否则{
//更改值
如果(我的佩吉

它不起作用,因为您正在将mousemove事件分配给div,而不是文档

如果希望每个div独立响应,则需要为变量指定一个值,以了解单击了哪个div。这样,当鼠标移动时(单击其中一个div后),可以将函数指定给该特定div

此演示仅修复mousemove,以便您了解如何解决主要问题

var clicking=false;
$('.vamoAlSubibaja').mousedown(函数(){
单击=真;
});
$(文档).mouseup(函数(){
点击=假;
})
var i=0;
var y=0;
$(文档).mousemove(函数(my){
如果(单击==false){
返回
}否则{
//更改值
如果(我的佩吉
据这位官员说

在某些实现环境(如浏览器)中,如果用户开始拖动操作(例如,按下鼠标按钮),并且定点设备已离开用户代理的边界,mousemove事件可能会继续触发

在这种情况下,当鼠标离开
输入限制时,Firefox继续触发mousemove事件,而Chrome没有。这就是为什么您应该遵循@Alvaro的解决方案作为参考,并使用
文档
而不是
输入限制

也要记住

鼓励实施确定最佳频率率,以平衡响应性和性能

因此,不同浏览器的效果不会完全相同。

根据官方数据

在某些实现环境(如浏览器)中,如果用户开始拖动操作(例如,按下鼠标按钮),并且定点设备已离开用户代理的边界,mousemove事件可能会继续触发

在这种情况下,当鼠标离开
输入限制时,Firefox继续触发mousemove事件,而Chrome没有。这就是为什么您应该遵循@Alvaro的解决方案作为参考,并使用
文档
而不是
输入限制

也要记住

鼓励实施确定最佳频率率,以平衡响应性和性能


因此,不同浏览器的效果不会完全相同。

非常感谢,这是一个很好的解决方案。您好,因为您可以验证它仅在鼠标上下移动时有效,而不是在鼠标两侧(左/右)时有效非常感谢,这是一个很好的解决方案再次您好,因为您可以验证它只在鼠标上下移动时才工作,而不是在两侧(左/右)非常有趣,我想知道它为什么在Firefox上工作。非常有趣,我想知道它为什么在Firefox上工作。
var clicking = false;
$('.vamoAlSubibaja').mousedown(function() {
  clicking = true;  
});

$(document).mouseup(function() {
  clicking = false;  
})
var i = 0;
var y = 0;
$('.vamoAlSubibaja').mousemove(function(my) {
  if (clicking == false) {
    return
  } else {
    // change value
    if (my.pageY <= $(this).offset().top + $('.vamoAlSubibaja').css('width').replace('px', '') / 10) {
      y = parseInt($(this).val()) + 1;
      $('.movestatus').text('plus');
    } else {
      y = parseInt($(this).val()) - 1;
      $('.movestatus').text('minus');
    }
    $(this).val(parseInt(y));    
    i++;
  } 
});