avoid event listener lost