Khi bạn trả về false
từ trình xử lý sự kiện, ngăn chặn hành động mặc định cho sự kiện đó và dừng sự kiện phát sinh thông qua DOM. Có nghĩa là, nó là tương đương để làm điều này:
$('.dialogLink')
.click(function (event) {
dialog(this);
event.preventDefault();
event.stopPropagation();
});
Nếu '.dialogLink'
là một yếu tố <a>
sau đó hành động mặc định của nó trên nhấp chuột là để điều hướng đến href
. Trả lại false
từ trình xử lý nhấp chuột sẽ ngăn điều đó.
Để biết liệu nó có cần thiết trong trường hợp của bạn hay không, tôi đoán câu trả lời là có bởi vì bạn muốn hiển thị hộp thoại để phản hồi nhấp chuột thay vì điều hướng. Nếu phần tử bạn đã đặt trình xử lý nhấp chuột không có hành động mặc định khi nhấp chuột (ví dụ: thông thường không có gì xảy ra khi bạn nhấp vào div) thì bạn không cần phải trả về false vì không có gì để hủy.
Nếu bạn muốn làm điều gì đó để phản hồi nhấp chuột nhưng hãy để điều hướng mặc định tiếp tục, sau đó không trả về false.
Tiếp tục đọc:
Nó sẽ giống nhau nếu tôi được mã hóa trong hai sự kiện đó vào hàm hộp thoại? – Alan2
Hai dòng này không phải là sự kiện, chúng gọi các phương thức của đối tượng 'event' mà bạn sẽ nhận thấy tôi đã thêm vào như một tham số cho hàm. jQuery đặt tham số đó thành đối tượng 'event' được kết hợp với bất kỳ sự kiện nào xảy ra.Nếu bạn đã chuyển đối tượng 'event' cho hàm' dialog() 'thì nó có thể gọi những phương thức đó, nhưng tôi nghĩ nó có thể duy trì được nhiều hơn nếu bạn làm điều đó trực tiếp nơi tôi đã hiển thị nó. Có nói rằng, tôi khuyên bạn nên gắn bó với 'return false' bạn đã có: nó ngắn hơn. – nnnnnn
Là một người chỉ gặp vấn đề này và phải mất một chút để nhận ra những gì đang diễn ra, tôi sẽ tranh luận gọi là 'return false' không rõ ràng như nói để ngăn chặnDefault và stopPropagation. – aug