Я решил его, отслеживая исходное событие, вызвавшее hashchange
(будь то салфетка, щелчок или колесо), чтобы событие не было ошибочно принято за простую посадку на странице, и использование дополнительного флага в каждом из моих привязок событий. Браузер не будет устанавливать флаг снова на false
при нажатии кнопки «Назад»:
var evt = null,
canGoBackToThePast = true;
$('#next-slide').on('click touch', function(e) {
evt = e;
canGobackToThePast = false;
// your logic (remember to set the 'canGoBackToThePast' flag back to 'true' at the end of it)
}