When you have auto-complete list or if you want to swipe over some buttons you can not use touchstart or touchend becuase soon as you tap on button/list of buttons, touchstart/touchend will be executed and no matter what you do next slide/swipe this is not going to be executed because tap on a button have higher priority.
So to fix this problem you can use something like this:
So to fix this problem you can use something like this:
var touchmoved; $autocomplete.on('touchend click','li', function(e){ if(touchmoved != true){ $input.val($(this).text().trim()); $autocomplete.empty(); } }).on('touchmove', function(e){ touchmoved = true; }).on('touchstart', function(){ touchmoved = false; });