私は、ユーザーが電話番号を動的に追加できるようにする簡単なスクリプトを構築しています。これらの入力は、その場で編集可能なラベルとペアになっています。私はラベルのjeditableを使用していますが、ユーザがラベルの入力ボックス内をクリックしようとすると、小さな問題に遭遇しました。ブラウザはラベルのクリックを検出し、フォーカスを入力要素に置きます。ラベルの「for」属性ラベルにjeditable、クリックしてフォーカスを失うのを防ぐにはどうすればいいですか?
私は次のことを試してみました:
$(selector).find('input').live('focus', function(){
$(selector).click(function(e){
e.preventDefault;
return false;
});
}).live('blur', function(){
//somehow reattach the behaviour here?
});
基本的に "セレクタ" は私のjeditableラベルのセレクタを保持しています。私はその中の入力を見つけ、フォーカスを合わせて、ラベルのデフォルトの動作を無効にしました。これにより、ラベルがフォーカスを変更しないようにします。しかし、私はこれを元に戻す方法を知らない。私はブール値のフラグをトグルして、デフォルトを妨げる別のメソッドを呼び出すことができたと思いますが、これを行うにはもっとクリーンな方法が必要だと感じています。
'e.preventDefault();'を変更できないので、グローバルな 'var'とif文をトグルとして使用します:) – Val