Tôi biết rằng chúng tôi có thể đính kèm các sự kiện với chức năng jQuery on()
và xóa chúng một lần nữa với off()
.Sử dụng Jquery off(). On() hoặc chỉ trên()
Trong một dự án hiện tôi thỉnh thoảng đi qua mã tương tự như này:
$("#SomeId").off("click").on("click");
hoặc đôi khi sử dụng không gian tên tương tự như sau:
$("#SomeId").off("click.namespace").on("click.namespace");
Theo như tôi biết bạn chỉ có thể đính kèm một sự kiện duy nhất vào một không gian tên cụ thể của sự kiện.
Ví dụ: nếu tôi chỉ cần thực hiện on("click")
, nó sẽ đính kèm chức năng được chỉ định của tôi,
ghi đè chức năng hiện tại được gán
, thêm vào sự kiện "nhấp".
Nếu tôi làm on("click.namespace")
, nó sẽ đính kèm chức năng được chỉ định
ghi đè chức năng hiện tại được gán
, thêm vào click.namespace
.
Điểm xóa bất kỳ sự kiện nào bằng cách ghép một số off("click")
thành on("click)
nếu on()
đã thay thế bất kỳ chức năng nào được gán cho sự kiện/sự kiện.namespace được chỉ định?
Cú pháp dự phòng trong mã của chúng tôi hay có lý do nào đó mà tôi đã bỏ lỡ?
Edit - Cảm ơn bạn kapa
tôi cảm thấy một chút ngớ ngẩn bây giờ, tôi sửa lại kiến thức bị lỗi của tôi ở trên. Thực hiện on("click.namespace1")
nhiều lần tôi đã quan sát thấy rằng đối tượng data("events")
tiếp tục thêm vào mảng sự kiện nhấp chuột.
Tôi nghĩ rằng câu trả lời cho câu hỏi của chính tôi ở đó. Đó là lý do tại sao người ta sẽ sử dụng off("event.namespace")
để đảm bảo không có gì khác được đính kèm vào sự kiện/event.namespace chính xác đó.
Tôi đã chỉnh sửa câu hỏi của mình với những phát hiện mới dựa trên phản hồi của bạn. Tôi cảm thấy một chút ngớ ngẩn Tôi không bao giờ nhận thấy rằng trước khi quan sát đối tượng 'dữ liệu (" sự kiện ")'. Cảm ơn bạn vì câu trả lời. – Jason