javascript - 如何让 jQuery UI slider 在单击后检测 mouseup

标签 javascript html jquery jquery-ui jquery-events

我正在使用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/

相关文章:

javascript - 是否可以在网站上勾勒出非矩形对象的轮廓?

javascript - react : Efficient updating of array state

javascript - 功能 - 显示与执行 console.log

javascript - 尝试使用 node.js supertest 发布 multipart/form-data

javascript - css 过渡不透明度在元素显示 :none then changed to display:block 的地方不起作用

javascript - 如何以 $.ajax 格式编写 $.getJSON 调用?

javascript - 日期选择器不显示日期 - Bootstrap

html - 使子元素不影响宽度,但影响父元素的高度?

javascript - js函数onclick需要点击一次改变字体

jquery重置动画