Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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
Javascript 事件处理程序中的警报正在更改其行为_Javascript_Jquery_Html_Jquery Ui - Fatal编程技术网

Javascript 事件处理程序中的警报正在更改其行为

Javascript 事件处理程序中的警报正在更改其行为,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,在下面的代码片段中,我有两个jQueryUI小部件的实例。对于这两种情况,我都为spin事件注册了一个处理程序;对于第一个,当前值被记录到控制台,对于第二个,值被警告 在第一个实例中使用旋转按钮时,所有操作都按预期进行,每次单击都会将新值记录到控制台。但是,对于第二个实例,会连续调用事件处理程序,并创建许多警报(直至单击“不允许此页面创建更多弹出窗口”复选框)。奇怪的是,警报值开始上升1,然后上升2,然后上升3等等 我在Windows7Pro SP1上的Firefox68上看到了这种行为。IE1

在下面的代码片段中,我有两个jQueryUI小部件的实例。对于这两种情况,我都为
spin
事件注册了一个处理程序;对于第一个,当前值被记录到控制台,对于第二个,值被警告

在第一个实例中使用旋转按钮时,所有操作都按预期进行,每次单击都会将新值记录到控制台。但是,对于第二个实例,会连续调用事件处理程序,并创建许多警报(直至单击“不允许此页面创建更多弹出窗口”复选框)。奇怪的是,警报值开始上升1,然后上升2,然后上升3等等

我在Windows7Pro SP1上的Firefox68上看到了这种行为。IE11和Edge似乎工作正常,但Chrome76具有类似的性能,尽管它只增加和减少2。有谁能提出一个建议,说明是什么原因导致了这一问题,以及我如何解决这一问题

$('#cqty1').spinner().on('spin',函数(e,ui){
console.log('值为'+ui.value));
});
$('#cqty2').spinner().on('spin',函数(e,ui){
警报('值为'+ui.value');
});



我认为这是jquery微调器事件的问题。我找不到出路。我找到了一条路。使用“停止”事件,而不是使用“旋转”事件

发件人:

停止(事件,ui)类型:旋转停止->旋转后触发

以下是我的尝试:

这是我的密码笔:

$( function() {
    var spinner1 = $( "#cqty1" ).spinner({
  stop: function (e, ui) {
    console.log('value is ' ,e.delegateTarget.childNodes[0].value);
  }
});


var spinner2 = $( "#cqty2" ).spinner({
  stop: function (e, ui) {
    alert('value is ' + e.delegateTarget.childNodes[0].value);
  }
});

})

我没有发现问题,但是可以使用
spinstop
而不是
spinstop
并从元素iteself获取值,而不是从函数param获取值:
$(“#cqty1”).spinner().on(“spinstop”,函数(事件,ui){alert($(“#cqty1”).spinner(“value”)})
在第二个处理程序中记录
console.log(e)
时,您可以看到每次我在警报提示中按OK时都会触发原始的
mousedown
事件,也就是说,我没有发现任何迹象表明警报函数返回任何可能导致该事件的内容。@Elias当我尝试获取“old”时价值(旋转前)。@经验主义耶;似乎出于某种原因,单击“确定”可以有效地重新传播原始自旋事件。但是为什么它会停止(它最终会停止)?@Nick在小提琴中的值是正确的:(谢谢你。如果我能避免的话,我宁愿不使用它,因为我正在使用
spin
事件来潜在地阻止旋转的发生。