Edit: Since the problem is really related to jQueryUI radio buttons , it would be easier to select mousedown on the event. This is non-standard UX behavior, but it should bypass the βlong clicksβ on the button. Thus, adding the following event handler will select the button when the "down" action of the left mouse button is detected - see the updated demo .
Javascript
$('label').on('mousedown', function(event) { switch (event.which) { case 1: $(this).click(); } });
My original answer
First, I will make the switches have a large target area. You can wrap <input> in <label> with an add-on that, firstly, allows the label text to also select a button, but the add-on gives even more space around which you can click.
Secondly, from How do I turn off text selection highlighting using CSS? , you can turn off the text selection so that the movement does not cancel the click.
HTML
<label>Button 1 <input type="radio" name="btn" /></label> <label>Button 2 <input type="radio" name="btn" /></label>
CSS
label { padding:0 10px; border:1px dotted lightblue; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
Or see the (original) demo . This is not an ideal solution, but in my limited testing I find that more clicks are logged.
andyb source share