improve click event