0

次のコードを使用して、div(infoという名前)の外側をクリックしたときに非表示にします。

$(document).click(function(e) {
if (e.target.id != 'info' && !$('#info').find(e.target).length) {
        $("#info").fadeOut(300);
setTimeout(function() {
        $("#info").html("Select an Item");
},300);
}; //if statement
}); //click function

私が達成しようとしているのは、fadeOutが実行された後、「SelectaItem」というテキストをdivに配置することです。ただし、このSetTimeoutは常に実行されます。divは別の関数を介して表示されますが、このsetTimeout関数もすぐにトリガーされるようです。

なぜこれが発生し、どのように修正しますか?

4

2 に答える 2

2

可能であれば回避しsetTimeoutますが、代わりに次のようにします。

$("#info").fadeOut(300, function() {
  // Animation complete.
  $("#info").html("Select an Item");
});
于 2012-08-09T20:37:07.667 に答える
0

より良い解決策は、遅延関数を使用することです。

$( "#info")。delay(1000).html( "アイテムを選択").fadeOut(300);

参照:

于 2012-08-09T20:37:03.843 に答える