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 に答える