這裏就是我遇到的一個小演示:的JavaScript的addEventListener需要點擊兩下火的功能
而且這裏的代碼片段:
HTML:
<div id="frame">
<div class="bead col_a" id="a1"></div>
</div>
CSS:
#frame {
position: relative;
height: 205px;
}
.bead {
position: absolute;
background: black;
width: 50px;
height: 25px;
-moz-border-radius: 50%;
-webkit-border-radius: 50%;
border-radius: 50%;
}
.bead:hover {
background-color: white;
border: 1px solid black;
}
#a1 {
top: 0px;
}
個
JS:
var a1 = document.getElementById("a1");
function fiveToggle(bead1) {
if (bead1.style.top === "0px"){
bead1.style.top = "25px";
} else {
bead1.style.top = "0px";
}
}
a1.addEventListener("click", function(){ fiveToggle(a1); }, false);
的想法是點擊時具有胎圈偏移的位置向上或向下。換句話說,切換。但是,在實現此功能的函數中添加if/else語句會使可點擊的項目在移動之前需要兩次點擊。在最初的額外點擊之後,按需要點擊一下鼠標。如果我從函數中刪除if/else語句來重新定位珠子並添加簡單移動它的代碼(沒有條件檢查),那麼它將按需要工作。我覺得這很好奇。有人會向我解釋爲什麼這樣表現?
'bead1'沒有'top'定義,所以它先移到0px。在'fiveToggle'函數的開頭使用'console.log(bead1.style.top);'來查看它的值。 – Goose