Zajmuję się stroną internetową w pracy i ostatnio dodałem żądania ajaxy, aby była szybsza i bardziej responsywna. Ale to podniosło problem.Środkowe kliknięcie (nowe zakładki) i linki do javascript
Na moich stronach po lewej stronie znajduje się tabela indeksów, podobnie jak menu. Po kliknięciu wywołuje on żądanie, które wypełnia resztę strony. W dowolnym momencie możesz kliknąć inną pozycję indeksu, aby załadować inną stronę.
Przed dodaniem javascript, możliwe było kliknięcie środkowe (otwieranie nowych kart) dla każdej pozycji indeksu, co pozwoliło na załadowanie innych stron, gdy miałem do czynienia z jednym z nich. Ale odkąd zmieniłem wszystkie łącza, które mają być żądaniami ajax, teraz wykonują trochę javascript zamiast być prawdziwymi linkami. Dlatego otwierają tylko puste karty, gdy kliknę je środkowym przyciskiem myszy.
Czy istnieje sposób połączenia obu funkcji: linki uruchamiające javascript po kliknięciu lewym przyciskiem lub nowe karty po kliknięciu środkowym? Czy to musi być jakiś brzydki javascript, który przechwytuje każde kliknięcie i odpowiednio sobie z nim radzi?
Dzięki.
Jedyny "problem" z tym podejściem polega na tym, że osoba przeglądająca znaczniki nie będzie mogła od razu zobaczyć, że istnieje powiązana procedura obsługi zdarzeń. – Rob
Nie klasyfikuję tego problemu. Jeśli konstruujesz elementy w znaczący sposób, powinieneś móc spojrzeć na JS, zobaczyć, gdzie są wszystkie haki zdarzeń. Jeśli martwisz się tym zbyt mocno, możesz * ustawić * wartość rel attr na js, lub wpisać ID z js_, itp. – Oli
Lub alternatywnie możesz użyć atrybutu "onclick" zgodnie z przeznaczeniem i umieścić nazwę funkcja obsługi zdarzeń tam. Zmiana przeznaczenia atrybutu "rel" lub poprzedzanie identyfikatorem js_ naprawdę "pachnie źle", gdy istnieje atrybut zdefiniowany wyraźnie w tym celu. – Rob