Zrobiłem prosty menadżer popup, który użył domeny, aby zdecydować, które wyskakujące okienko powinno być na wierzchu, bez żadnej reguły zindeksowania: po kliknięciu wyskakującego okienka, jest to przesunął się na pierwszej pozycji, więc znajduje się na górze drugiego okna podręcznego. Niestety: ten ruch DOM przerywa zdarzenie onclick w moim popup.onclick nie uruchamia się, jeśli element zostanie ponownie wstawiony do DOM w połowie kliknięcia
Zrobiłem prosty przypadek problemu: poniższy kod powinien wyświetlać zdarzenia z trzema kliknięciami: mousedown, mouseup i click, działa w przeglądarce Firefox i myślę, że działał w poprzednich wersjach Chrome, ale robi to już nie.
<div>
<div onmousedown="console.log('mousedown');this.parentElement.appendChild(this);" onmouseup="console.log('mouseup');" onclick="console.log('click');">Click</div>
</div>
Czy wiesz, w jaki sposób mogę rozwiązać ten problem, i wrócić moje zdarzenie onclick?
Prace nad Chrome, działa na IE11 (której OP nie), i kontynuuje prace nad Firefox. (Te, które mam pod ręką.) Miło! Dziwne i martwiliby mnie pod względem niestabilności. Ale miły! –
Działa doskonale! Dziękuję Ci bardzo. –
Wygląda łatwiej niż dotknięcie zdarzeń, działa naprawdę dobrze. +1 Byłbym ostrożny z zbyt wieloma rodzeństwami/dziećmi - może to zranić wydajność (Nie jest to problemem dla OP, myślę) –