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 - JQuery 自动完成晚了 1 个字符

javascript - jQuery : How to handle event of multiple elements

html - 无法在输出中获取 div 元素

javascript - 确定多个 XPath 的存在和值

css - 并排对齐 <div> 元素

html - 当祖先有类 CSS (LESS) 时改变 li 的高度

jQuery 提交带有带有新操作的单击事件的表单

jquery - MVC 与 Ajax 和 jQuery 表单提交问题

javascript - 如何在 Three.js 中一次仅加载一个模型?

javascript - 使用 onbeforeunload 绑定(bind)事件