Do not use click event with jQuery Mobile if you don't like a delay. Basically jQuery Mobile click event has a 300ms delay and it can be event larger. You can use vclick event. It is a special jQuery Mobile click event made to bridge differences between desktop click and mobile tap. It don't suffer form delay.
Or you can use tap event or touchStart.
$(document).on('vclick', '#button', function(){
console.log("click");
});
Read my other answer about click delay: In jQuery mobile, what's the diff between tap and vclick?