Я понял, в чем была проблема.
Если посмотреть на данный код:
clickHandler.call(this, event);
window.location = $(this).attr('href');
То видно, что сперва вызывается функция clickHandler, а потом уже происходит переход по ссылке. Но JS асинхронный язык, поэтому он не ждет результата выполнения предыдущей функции, а идет дальше. В моем случае, просто не успевал выполниться аякс запрос внутри функции clickHandler, происходило сразу выполнение кода:
window.location = $(this).attr('href');
Решением в моем случае являлось выполнение перехода по ссылке с небольшой задержкой. Я использовал функцию setTimeout и передал в нее замыкание, внутри которого выполнялся переход:
//тут левая кнопка обрабатывается
clickHandler.call(this, event);
var href = $(this).attr('href');
function link(){
var func = function(){
window.location = href;
}
return func();
}
setTimeout(link, 50);
return false;