1

私が理解しているように、フォーカスイベントは入力ボックスのようなもので使用する必要がありますが、それは私にはうまくいかないようです。私は次のフィドルを持っています...誰かがテキストボックスに焦点を合わせたときに「ガイド」divを表示させようとしています。問題の一部が「兄弟」の使用にあるのか、入力ボックスに一意のIDが必要なのかわかりません。しかし、私は一意の識別子を親として配置し、兄弟を参照しました...

http://jsfiddle.net/jhacks/2jjZF/2/

'Error'および'Okay'メッセージ用に追加のコードが含まれていることがわかります。私は、Twitterのサインアップページのようなものと一致するようにJQueryイベントを取得するように取り組んでいます。

ありとあらゆる助けをいただければ幸いです。ありがとう!

4

2 に答える 2

1
$('input#registerBox').focus(
    function() {
     $(this)
       .closest('#registerBoxName') // go to parent div#registerBoxName
       .next('.registerGuidance')   // move to next div.registerGuidance
       .find('#registerGuideName')  // finding target #registerGuideName within div.registerGuidance
       .show(); // make display
   }
});
于 2012-05-19T18:26:10.220 に答える
1

あなたは正しいです、兄弟は間違ったセレクターです。兄弟は、同じ親を持つ他の要素を指しますが、入力フィールドには何もありません。

IDセレクターを使用しており、IDは一意の定義であるため、トラバースする必要はありません。

$('input#registerBox').focus(
    function() {
        $('#registerGuideName').show();
    }
);

すでにjqueryオブジェクトを使用している$(this)ので、そのIDを直接選択してみませんか?

ドキュメントに複数あるためにスクリプトでトラバースが必要な場合は、IDセレクターの代わりにクラスまたはデータ属性を使用する必要があります。適切なトラバースとは、相互の親を見つけてから、適切な子を見つけることを意味します。

http://api.jquery.com/category/traversing/

$('input.registerBox').focus(
    function() {
        $(this).closest('.registerName').find('.registerGuideName').show();
    }
);
于 2012-05-19T18:19:44.733 に答える