<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<style type="text/css">
.top-nav {
font-size: 14px;
font-weight: bold;
list-style: none;
}
.top-nav li {
float: left;
margin-left: 1px;
}
.top-nav li a {
line-height: 34px;
text-decoration: none;
background: #3f240e;
color: #fff;
display: block;
width: 80px;
text-align: center;
}
.top-nav ul {
list-style: none;
display: none;
padding: 0;
position: absolute;
height: 0;
overflow: hidden;
}
.top-nav li a:hover {
background: url(images/slide-bg.png) 0 0 repeat-x;
}
.note {
color: #3f240e;
display: block;
background: url(images/slide-bg.png) 0 0 repeat-x;
}
.corner {
display: block;
height: 11px;
background: url(images/corner.png) 31px 0 no-repeat;
}
</style>
<script type="text/javascript">
window.onload = function() {
var Lis = document.getElementsByTagName("li");
for(var i=0; i<Lis.length; i++) {
Lis[i].onmouseover = function() {
var u = this.getElementsByTagName("ul")[0];
if(u != undefined) {
u.style.display = "block";
AddH(u.id);
}
}
Lis[i].onmouseleave = function() {
var u = this.getElementsByTagName("ul")[0];
if(u != undefined) {
SubH(u.id);
}
}
}
}
function AddH(id) {
var ulList = document.getElementById(id);
var h = ulList.offsetHeight;
h += 1;
if(h<=42) {
ulList.style.height = h + "px";
setTimeout("AddH('"+id+"')",10);
}
else {
return;
}
}
function SubH(id) {
//setTimeout();
}
</script>
<body>
<ul class="top-nav">
<li><a href="#"><span class="note">慕课网</span></a></li>
<li><a href="#">课堂大厅</a></li>
<li><a href="#">学习中心</a>
<ul id="mnuUL">
<span class="corner"></span>
<li><a href="#">前端课程</a></li>
<li><a href="#">手机开发</a></li>
<li><a href="#">后台编程</a></li>
</ul>
</li>
<li><a href="#">关于我们</a></li>
</ul>
</body>
</html>
fungsi AddH(id) {
}
Ini ialah fungsi yang anda tulis sendiri, dan kemudian anda menggunakan setTimeout("AddH('"+id+"')",10) untuk memanggil fungsi AddH dengan kerap. Tanda petikan berganda terluar mungkin ada atau mungkin tidak Ini mempunyai sedikit kesan Seperti yang dikatakan oleh orang di atas, setTimeout boleh menerima rentetan dan menjalankannya sebagai kod. Kemudian pasangan petikan tunggal di dalam adalah kerana document.getElementById(id) dalam fungsi anda perlu digunakan untuk mendapatkan objek label berdasarkan id Contohnya, jika id anda adalah hellow, maka nilai yang anda masukkan adalah tanpa petikan tunggal. Dalam kes ini, ia adalah hellow, dan apabila diluluskan secara dalaman, ia menjadi document.getElementById(hellow) Ini adalah salah kerana parameter yang diterima bagi fungsi document.getElementById(parameter) mestilah jenis rentetan, jadi tanda petikan. mesti ditambah. Ya, apabila anda menambah tanda petikan, nilai yang dihantar akan menjadi document.getElementById('hello'). Bagi petikan berganda yang paling dalam dan tanda tambah, ia adalah penyambung Sama seperti rentetan "neraka", jika anda ingin menambah pembolehubah var i = "ow" pada akhir, jika anda menambahnya secara langsung, "neraka" saya akan. kelihatan seperti ini Jika anda menulisnya, ralat akan dilaporkan, jadi anda perlu menggunakan simbol sambungan kami + tanda Jika anda menulis "hell" + saya suka ini, rentetan baharu yang terdiri daripada "hello" akan menjadi "hello". Dalam kod anda, kerana id pembolehubah anda ditulis di tengah, anda perlu menggunakan dua tanda tambah untuk menyambung. Malah, tanda petikan tunggal dan berganda anda boleh ditulis dengan cara lain Jika anda tahu cara menggunakan aksara melarikan diri, saya tidak akan memberikan penjelasan terperinci di sini Anda akan memahaminya secara perlahan pada masa hadapan.
setTimeout boleh menerima rentetan sebagai kod untuk dijalankan.
Tetapi tidak disyorkan untuk menghantar rentetan ke setTimeout
Jika anda tidak menambahnya, fungsi itu akan dilaksanakan sendiri
Jika parameter pertama ialah rentetan, ia bersamaan dengan eval dan boleh dilaksanakan sendiri.
Sumber