2
我想只觸發一次事件監聽器回調。 addEventListener
方便地有一個標誌,我可以通過它:一次:真正與addEventListener不工作在IE11或邊緣
once:一個布爾值,指示偵聽器在添加後應該最多被調用一次。如果它是真的,那麼偵聽器在被調用時會被自動刪除。
這在每個瀏覽器除了 IE11和邊緣奇妙。我知道我可以手動刪除事件偵聽器後,它觸發,但這個標誌應該工作...我做錯了什麼,或者這是一個公認的問題與IE瀏覽器或什麼?
Should you prefer JSFiddle,否則:
var div = document.getElementById('transition');
var result = document.getElementById('result');
window.grow = function(){
var width = div.offsetWidth + 50;
div.style.width = width + 'px';
}
var count = 0;
div.addEventListener('transitionend', function(){
result.innerHTML = "transitionend has fired " + ++count + " times";
}, { once: true });
#transition{
background-color: yellow;
transition: width 2s;
width: 100px;
}
<div id="transition">
Content
</div>
<button onclick="grow()">
Grow the div
</button>
<div id="result">
</div>
這是一種新的伎倆,老狗不能這樣做。 – dandavis