0

场景:用户点击一个元素,然后拖动它。不过,拖到其他地方结束。我注意到,当这种情况发生时,如果我监听正在拖动的元素,它不会触发任何东西,除非在拖动完成时光标在同一个元素上被释放。

如何触发在元素上开始但在文档上其他任何地方结束的事件?

$('#hotels-slider-handle').on('mouseup touchend click', function() {
    $('#booking-input').trigger('change');
});
4

1 回答 1

0

作为对 Cerlin Boss 的回答,他对我上面的原始帖子发表了评论......这是我想出的并且效果很好(我需要触发的东西会很好地触发) - 我一直在寻找更有效的解决方案(忽略 jQuery 延迟,它们在我的范围内是必要的)

var bookingFormInputs = $('#booking-input'),
    hotelsSlider = $('#hotels-slider');
$('#hotels-slider-handle').on('mousedown touchstart', function() {
    $(document).delay(300).one('mouseup touchend', function() {
        $(bookingFormInputs).delay(600).trigger('change');
    });
    $(hotelsSlider).delay(300).one('mouseleave', function() {
        $(document).on('mouseup touchend', function() {
            $(bookingFormInputs).delay(300).trigger('change');
        });
    });
});
于 2014-12-05T08:01:43.677 回答