3

申し訳ありませんが、これは私にとって簡単ではありません....!ボタンをクリックした後、数秒後にdivを表示したい。表示されていますが、クリックするとすぐに遅延はありません。私はここで何が間違っているのですか?

$('div.skill').hide();
$('.btn_2').click(function(e){              
        showSkills ();
      });
function showSkills(){
    alert("Hello")
};
setTimeout ( "showSkills()", 3000 );

Tnx

4

5 に答える 5

3

あなたは近くにいます。

  1. 呼び出しは、クリックハンドラーの下ではなく、クリックハンドラーのsetTimeout内部で行う必要があります。
  2. 関数名を文字列として渡す必要はありません。

これは、あなたが求めていることを達成するための適切な方法です。

$('div.skill').hide();
$('.btn_2').click(function (e) {
    setTimeout(showSkills, 3000);
});

function showSkills() {
    alert("Hello")
};
于 2013-03-18T11:46:35.857 に答える
2

ボタンクリックハンドラーでshowSkillsを呼び出しています。代わりに、setTimeout行をクリックハンドラーに移動します。

$('div.skill').hide();
$('.btn_2').click(function(e){              
        setTimeout ( showSkills, 3000 );
      });
function showSkills(){
    alert("Hello")
};
于 2013-03-18T11:46:27.523 に答える
0

試す :

setTimeout (function(){ "showSkills()"}, 3000 );
于 2013-03-18T11:46:56.443 に答える
0
$('div.skill').hide();

$('.btn_2').click(function(e){              
        setTimeout(showSkills, 3000);
});

function showSkills(){
    alert("Hello")
};
于 2013-03-18T11:47:01.017 に答える
0

これを試して:

$('div.skill').hide();
$('.btn_2').click(function(e){              
    setTimeout (showSkills, 3000 );
});
function showSkills(){
    alert("Hello")
};
于 2013-03-18T11:47:54.947 に答える