Tôi đang cố trì hoãn sự kiện hoặc sự kiện mặc định trong tập lệnh jQuery. Ngữ cảnh là tôi muốn hiển thị một thông báo cho người dùng khi họ thực hiện một số hành động nhất định (bấm chủ yếu) trong vài giây trước khi hành động mặc định kích hoạt.Tạm dừng sự kiện mặc định trong jQuery
Pseudo-code: - Người dùng nhấp liên kết/nút/yếu tố - Người dùng nhận được một thông báo popup nêu 'Bạn đang rời khỏi trang web' - tin nhắn vẫn còn trên màn hình cho mili giây X - Hành động mặc định (có thể khác so với href liên kết quá) bắn
cho đến nay, những nỗ lực của tôi trông như thế này:
$(document).ready(function() {
var orgE = $("a").click();
$("a").click(function(event) {
var orgEvent = event;
event.preventDefault();
// Do stuff
doStuff(this);
setTimeout(function() {
// Hide message
hideMessage();
$(this).trigger(orgEvent);
}, 1000);
});
});
Tất nhiên, điều này không làm việc như mong đợi, nhưng có thể hiển thị những gì tôi đang cố gắng làm.
Tôi không thể sử dụng plugin vì ths là môi trường được lưu trữ mà không có quyền truy cập trực tuyến.
Bất kỳ ý tưởng nào?
Điều này sẽ không kích hoạt lại trình xử lý nhấp chuột lần nữa, bao gồm 'event.preventDefault'? – DLH
Nó sẽ không hoạt động như bối cảnh này sẽ là cửa sổ và không phải là neo – redsquare
cần phải tham chiếu đến neo và sử dụng nó bên trong setTimeout. Tuy nhiên có nó sẽ dẫn đến một vòng lặp vô hạn. Bạn sẽ cần phải hủy liên kết sự kiện nhấp để nó không chạy. – redsquare