我試圖對jQuery產生fadeToggle
效果, 只有在第二次點擊<h1>
標記時,切換效果才能正常工作。 在第一次點擊它後顯示並隱藏。與文本()錯誤fadeToggle?
注意到,如果我刪除text("how are you")
方法並將段落標記放在裏面,它將完美工作。
想知道爲什麼它不工作的第一種方式。 這是我的HTML代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('h1').click(function(){
$('p').text("how are you").fadeToggle(500);
});
});
</script>
</head>
<body>
<h1>Hello jquery</h1>
<p></p>
</body>
</html>
您的JS在初始化fadeToggle之前動態地在段落元素中插入文本。所以段落可見,但沒有文字,沒有背景和(因爲它沒有內容)沒有高度。這就是爲什麼肉眼看不見肉眼看不見的原因。如果你增加身高例如。 100px和背景例如。紅色通過CSS,你將能夠看到該元素。 所以你有一個看似「隱形」的段落(對肉眼來說),在插入內容後(肉眼看不見),可以看到它(同時也給它高度)。但是,就瀏覽器而言,它總是可見的。 –
由於fadeToggle確定可見性(如瀏覽器認爲該元素是否可見),因此它會看到該元素是可見的,因此在第一次單擊時會將其淡出。在淡出之前你看到文本突然出現的唯一原因正是因爲你通過JS插入它。 –