Javascript Jquery微调器微调事件值延迟
信息 我想在微调器的值更改时更新按钮中的文本。在这里,我需要向微调器添加2个事件。Javascript Jquery微调器微调事件值延迟,javascript,jquery,html,asp.net-core,Javascript,Jquery,Html,Asp.net Core,信息 我想在微调器的值更改时更新按钮中的文本。在这里,我需要向微调器添加2个事件。change事件和spin事件。当用户按下按钮(例如添加+10值或-10值)时,会触发change事件。当用户单击ui微调器按钮添加+1或-1值时,会触发spin事件。我有以下代码来更新按钮的文本: 代码 var spinner = $("#spinnerTool").spinner( { change: function (event, ui) { $("#payC
change
事件和spin
事件。当用户按下按钮(例如添加+10值或-10值)时,会触发change
事件。当用户单击ui微调器按钮添加+1或-1值时,会触发spin
事件。我有以下代码来更新按钮的文本:
代码
var spinner = $("#spinnerTool").spinner(
{
change: function (event, ui) {
$("#payCoinsBtn").html('Pay €' + $(this).val());
},
spin: function (event, ui) {
$("#payCoinsBtn").html('Pay €' + $(this).val());
}
}
);
$("#plusTen").click(function () {
var spinnerValue = parseInt($("#spinnerTool").val());
spinner.spinner("value", spinnerValue + 10);
});
$("#minusTen").click(function () {
var spinnerValue = parseInt($("#spinnerTool").val());
spinner.spinner("value", spinnerValue - 10);
});
//HTML
- 10
+ 10
问题
var spinner = $("#spinnerTool").spinner(
{
change: function (event, ui) {
$("#payCoinsBtn").html('Pay €' + $(this).val());
},
spin: function (event, ui) {
$("#payCoinsBtn").html('Pay €' + $(this).val());
}
}
);
$("#plusTen").click(function () {
var spinnerValue = parseInt($("#spinnerTool").val());
spinner.spinner("value", spinnerValue + 10);
});
$("#minusTen").click(function () {
var spinnerValue = parseInt($("#spinnerTool").val());
spinner.spinner("value", spinnerValue - 10);
});
当按下按钮并触发change
事件时,按钮内有正确的文本和值(例如“支付10欧元”),但当按下ui微调器按钮并触发spin
事件时,按钮内的值始终落后1步。因此,当微调器内的值为3时,按钮内的文本显示“支付2欧元”
为什么这发生在spin
事件中而不是change
事件中?我如何解决这个问题?显然,在当前值增加或减少1之前调用了spin
事件。因此,我在函数中添加了更改按钮文本的代码,该函数在当前值增加或减少后调用。像这样:
$('.ui-spinner-up').click(function () {
$("#payCoinsBtn").html('Pay €' + $("#spinnerTool").val());
});
$('.ui-spinner-down').click(function () {
$("#payCoinsBtn").html('Pay €' + $("#spinnerTool").val());
});
显然,spin
事件是在当前值增加或减少1之前调用的。因此,我在函数中添加了更改按钮文本的代码,该函数在当前值增加或减少后调用。像这样:
$('.ui-spinner-up').click(function () {
$("#payCoinsBtn").html('Pay €' + $("#spinnerTool").val());
});
$('.ui-spinner-down').click(function () {
$("#payCoinsBtn").html('Pay €' + $("#spinnerTool").val());
});
使用停止事件:
var spinner = $("#spinnerTool").spinner(
{
stop: function (event, ui) {
//alert("Current = " + $("#spinnerTool" ).spinner("value")) ;
$("#payCoinsBtn").html('Pay €' + $(this).val());
},
... }
});
使用停止事件:
var spinner = $("#spinnerTool").spinner(
{
stop: function (event, ui) {
//alert("Current = " + $("#spinnerTool" ).spinner("value")) ;
$("#payCoinsBtn").html('Pay €' + $(this).val());
},
... }
});