0

ユーザーがボタンをクリックするとすぐにフェードインし、ユーザーがボタンを再度クリックするとフェードアウトする入力テキストボックスがあります。ユーザーがボタンをクリックするたびに、入力がフォーカスされます。これは、通常、ユーザーが最初に行うことは入力であるためです。問題は、入力にプレースホルダーがあり、ユーザーがボタンをもう一度クリックすると、入力がフェードアウトしている間にプレースホルダーが非常に迷惑な方法で一度ちらつくことです (これは、ユーザーがボタンを再度クリックしたときに入力がフォーカスされている場合にのみ発生します) )。

だから私が昨日一晩中やろうとしていたのは、ユーザーがボタンを最初にクリックしたときだけに入力フォーカスを置き、2 回目にクリックしてフェードアウトしたときに、入力がフォーカスされないようにすることです。

これを達成するのを手伝ってもらえますか? どうもありがとう!

        //takes care of showing search when clicking on add button
jQuery(".add-button").click(function() {



//shows and hides the textbox input
    jQuery(this).siblings(".search-input-form").fadeToggle(200);



 //triggers a focusing on the textbox input
    jQuery(this).next().children(".search-input").focus();




    return false;

}); 
4

2 に答える 2

2

$.toggle()関数を使用できます。クリックすると、提供されている機能が切り替わります。

$(".add-button").toggle(function() {
        var $input = $(this);

        //shows the textbox input
        $input.siblings(".search-input-form").fadeIn(200);

       //triggers a focusing on the textbox input
       $input.next().children(".search-input").focus();

       return false;
    },
    function() {
        var $input = $(this);

        //hides the textbox input
        $input.siblings(".search-input-form").fadeOut(200);

       // NO FOCUS HERE

       return false;
    }); 
于 2012-08-23T14:30:30.820 に答える
1

fadeTogglefadeInの切り替えfadeOut:

    jQuery(".search-input-form").click(function () {

        if (jQuery(".search-input-form").css("visibility") = "hidden")
        {
            jQuery(this).siblings(".search-input-form").fadeIn(200);
            jQuery(this).next().children(".search-input").focus();
        }
        else 
        {
            jQuery(this).siblings(".search-input-form").fadeOut(200);
        }
        return false;

    });         
于 2012-08-23T14:31:06.897 に答える