Tôi liên kết với một liên kết (bằng cách sử dụng hàm .live()
của jQuery) click
sự kiện và sau đó thêm một trình xử lý sự kiện onclick
với JS và HTML thuần túy (như <a href="".... onclick="some action">
). Tôi muốn ngăn chặn sự sủi bọt của sự kiện theo phương pháp live
nhưng tôi không biết làm thế nào.stopPropagation mà không cần jQuery
Có lẽ e.stopPropagation()
hữu ích trong trường hợp này nhưng trình xử lý sự kiện được thêm bằng onclick
được viết bằng JS thuần túy và tôi không thể gọi stopPropagation()
từ bên ngoài trình bao bọc phần tử jQuery. return false
trong trường hợp này không hoạt động. Tôi đã cố gắng thay thế return false
bằng $.Event('click').stopPropagation()
nhưng tôi nghĩ rằng điều này là sai vì nó không hoạt động.
Làm thế nào để ngăn chặn bong bóng đến phương pháp live()
không có trình bao bọc jQuery?
'return false' nên thực hiện thủ thuật. Nó sẽ hoạt động nếu bạn làm: ''. Btw. 'event.stopPropagation()' không phải là một phương thức jQuery. Vấn đề là IE sử dụng một modle sự kiện khác mà không cung cấp phương thức này, vì vậy 'return'ing' false' là giải pháp tốt nhất trong trường hợp này. Câu hỏi đặt ra là, tại sao bạn sử dụng trình xử lý sự kiện nội tuyến? –
trả về false không hủy sự kiện ràng buộc bởi .live – abonec
trả về false trong một hàm jQuery không giống như bên ngoài của nó: http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false – Mrchief