我正在使用jQuery slider在我的程序中并尝试释放 slider 触发更新数据库的事件。我所拥有的是:
$('.ui-slider-handle').mouseup(function () {
var $span = $(this).closest('#sliders').find('span.value'); // the span element that holds the value associated with the slider that was clicked
$.ajax({
method: 'POST',
url: '/UpdateAnswer',
data: {
Answer: {
QuestionId: $span.attr('data-qstnid'),
AnswerId: $span.attr('data-answid'),
AnswerVal: parseInt($span.text(), 10)
},
pid: $('input[name="pid"]').val()
}
});
});
除了一种意外情况外,这种方法工作正常:当用户按住 slider 上的鼠标按钮,移动 slider ,然后在释放鼠标之前将鼠标移离 slider 。在这种情况下,作为 slider 的 $span
未定义。
解决这个问题的最佳方法是什么? JavaScript/jQuery 是否有一种自然的方式来做到这一点?或者我是否必须创建一个 mousedown
处理程序,将元素传递给其他函数,然后附加一个 mouseup
处理程序......或类似的东西?
如果我需要更详细地描述我的情况,请告诉我。
最佳答案
您可能应该使用change,而不是使用mouseup
事件。或stop slider 本身的事件。
$( ".selector" ).on( "slidechange", function( event, ui ) {} );
或
$( ".selector" ).on( "slidestop", function( event, ui ) {} );
关于javascript - 如何让 jQuery UI slider 在单击后检测 mouseup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879815/