Po przywróceniu z procedury obsługi zdarzeń zapobiega domyślnej akcji dla tego zdarzenia i zatrzymuje przepełnienie zdarzenia przez DOM. Oznacza to, że jest odpowiednikiem ten sposób:
$('.dialogLink')
.click(function (event) {
dialog(this);
event.preventDefault();
event.stopPropagation();
});
Jeśli '.dialogLink'
jest <a>
elementem następnie jego domyślne działanie na kliknięcie jest, aby przejść do href
. Zwrócenie numeru false
z obsługi kliknięcia zapobiega temu.
Jeśli chodzi o to, czy jest to potrzebne w twoim przypadku, odgadłbym, że odpowiedź brzmi "tak", ponieważ chcesz wyświetlić okno dialogowe zamiast kliknięcia, a nie nawigację. Jeśli element, w którym umieściliśmy obsługę kliknięć, nie ma domyślnej akcji kliknięcia (np. Normalnie nic nie dzieje się po kliknięciu elementu div), to nie trzeba zwracać fałszu, ponieważ nie ma nic do anulowania.
Jeśli chcesz zrobić coś w odpowiedzi na kliknięcie, ale niech domyślna nawigacja będzie kontynuowana, nie zwracaj wartości false.
Dalsze czytanie:
Czy to było tak samo, gdy zakodowałem w tych dwóch zdarzeniach funkcję okna dialogowego? – Alan2
Te dwie linie nie są zdarzeniami, są to wywołania metod obiektu 'event', które zauważysz dodałem jako parametr do funkcji. jQuery ustawia ten parametr na obiekt 'event' powiązany z dowolnym zdarzeniem.Jeśli przekazałeś obiekt 'event' do funkcji' dialog() ', mógłbyś wywołać te metody, ale myślę, że jest to o wiele łatwiejsze do utrzymania, jeśli zrobisz to bezpośrednio tam, gdzie je pokazałem. Powiedziawszy to, polecam trzymać się "zwrotu fałszywego", które już masz: jest krótsze. – nnnnnn
Jako ktoś, kto wpadł na ten problem i trochę się zorientował, co się dzieje, argumentowałbym, że wywołanie 'return false' nie jest tak jasne, jak powiedzenie preventDefault i stopPropagation. – aug