1

ユーザーが html フォーム入力の「テキスト」(フォーカス) をクリックし、ぼかしで非表示にすると、div を表示しようとしています。

動作しますが、何らかの理由で、ユーザーがテキスト入力フィールドをクリックする前に div が表示されます。ユーザーがテキストフィールドにフォーカスしたときにのみ表示し、クリックすると非表示にしようとしていますか?

誰かが私が間違っているところを教えてもらえますか? ありがとう

<script>
    $(".infobox-profile").hide();

    $("#text").focusin(function() {
        $(".infobox-profile").show();
    }).focusout(function () {
        $(".infobox-profile").hide();
    });
    </script>

    <div class="infobox-profile">hello</div>
4

2 に答える 2

2

あなたのコードを$(function() { ... }

<script>
$(function() {
    $(".infobox-profile").hide();

    $("#text").focusin(function() {
        $(".infobox-profile").show();
    }).focusout(function () {
        $(".infobox-profile").hide();
    });
});
</script>

JavaScriptは、おそらくinfobox-profileDOMの一部になる前に実行されます。

実例

http://jsfiddle.net/bikeshedder/KxMcy/

于 2013-02-03T13:14:06.243 に答える
0

display: none;個人的には、JS を使用してロード時に非表示にすることはありません。css にプロパティを追加するだけです.infobox-profile。そしてbikeshedderが言ったように。コードを中に入れます$(function(){ INHERE });

于 2013-02-03T13:20:17.153 に答える