クリックしたときに入力フィールドをクリアしたいのですが、初めてクリックするときだけです。あなたは上記のスニペットで見ることができるように、属性 'onclick'を使用してjQuery関数.one()を要素に適用する方法
$('#inputf').one("click", function() {
$(this).val("");
});
入力:ドキュメントの任意の場所で次のコードを入れて(= inputf
がすでにロードされているIDを持つ要素を仮定して):jQueryを使って、あなたはこのようにそれを達成することができますフィールドにはid
属性の値がinputf
である必要があります。
しかし
<input type="text" onclick="$(this)....val('')" />
のように、入力フィールドのonclick
属性にそのスニペットを移動する方法はありますか?この関数は1つ以上のJavaScriptイベント型を含む文字列を必要とするため、関数.one()
を使用できないようです。しかし、ただ1つ以上のイベントタイプを指定せずに、呼び出すたびに.one()
を実行したいだけです。
をテストしていない、3分で書きましたあなたのHTMLタグはとにかく推奨されません。なぜなら、あなたのスクリプト(およびスタイル)を見つけやすい場所に完全に区切っておくことは常に良い考えであるからです。しかし、いいえ、あなたは '.one'をJavaScriptのイベントではなくjQueryメソッドなので、この方法で使うことはできません。 '.off'を使って追加されたイベントだけが削除されるので、' .off'を使って 'onclick'ハンドラを削除することさえできないようです。 – Blazemonger
あなたが最終的に遂行しようとしていたことを教えてくれたなら、あなたは正しい方法を見つけるのを手助けすることができました... – ShaneBlake
あなたの最初の例では、それを好ましい/正しい/混合マークアップ/ロジックにダウングレードしないでください。あなたがこれをしようとする理由が何であれ、コード分離を維持するというポジティブな点よりも勝っています。 – Stephen