tôi đã nhận thấy một hành vi kỳ lạ của live()
hàm trong jQuery:jQuery sống (nghe tiếng 'click') bắn cho kích chuột phải vào
<a href="#" id="normal">normal</a>
<a href="#" id="live">live</a>
$('#normal').click(clickHandler);
$('#live').live('click', clickHandler);
function clickHandler() {
alert("Clicked");
return false;
}
Đó là tiền phạt và dandy cho đến khi bạn nhấp chuột phải vào các "sống" và nó sẽ kích hoạt trình xử lý và sau đó không hiển thị menu ngữ cảnh. Trình xử lý sự kiện không kích hoạt (như mong đợi) trên liên kết "bình thường".
tôi đã có thể làm việc xung quanh nó bằng cách thay đổi xử lý như sau:
function clickHandler(e) {
if (e.button != 0) return true;
// normal handler code here
return false;
}
Nhưng đó là thực sự khó chịu khi phải nói thêm rằng tất cả các xử lý sự kiện. Có cách nào tốt hơn để xử lý sự kiện chỉ kích hoạt như trình xử lý nhấp chuột thông thường không?
Bạn đặt câu hỏi trong tương lai như thế nào? – PetersenDidIt
Tôi rất vui khi thấy cách giải quyết của bạn ở đây và đã nhanh chóng thử ứng dụng này trên ứng dụng của riêng tôi và mặc dù các liên kết tôi đang nhấp chuột ngay bây giờ có thể bị phát hiện và bỏ qua, tôi vẫn không thấy menu ngữ cảnh nhấp chuột phải của mình những cái này Ngoài ra, nút chuột giữa của tôi (mở trong một tab mới) cũng không hoạt động. Nhưng, ít nhất người xử lý có thể trở lại sớm! – Funka
Thực ra, có vẻ như nếu tôi nhấp chuột phải nhiều lần, nhanh chóng, thỉnh thoảng tôi có thể nhận được menu ngữ cảnh xuất hiện .... Hmmm. – Funka