preventDefaultを使用するとFormに入力できない

前回の記事(touchmoveが効かない)でドラッグやフリックを実現するためにtouchstartイベントにpreventDefaultをすると上手くいく事を紹介したが,preventDefaultしたエリアにformの入力(input, select など)があると反応しなくなる問題が発生。

とりあえずフラグを立てて回避するという方法でその場をしのいだが,もっと良い方法は無いものか。

var form_clicked_flg = false;
$('select,input,button').bind('touchstart', function(e){
	form_clicked_flg = true;
});
$('#left').bind('touchstart', function(e){

	// 
	// --  ドラッグに関する処理 -- //
	//

	if (!form_clicked_flg) {
		e.preventDefault();
	}
	form_clicked_flg = false;
});