jQuery dezaktywacja linków po załadowaniu strony

0

Witajcie, nie mogę sobie poradzić z jednym problemem. Ogólnie chodzi o to aby nie było możliwości kliknięcie na link bez zaznaczenia 2x checkbox.
Wszystko działa jak należy jeśli klikniemy, na któryś checkbox. Jednak po załadowaniu strony (bez ruszania checkboxów) linki są aktywne, nie wiem dlaczego, ponieważ funkcja activeLink() wywoływana jest zaraz po załadowaniu strony, jak i podczas zmiany checkbox.

Kod, który przygotowałem:

$(document).ready(function(){
	function activeLink() {
		$('.payment_module a').click(function(e){ e.preventDefault(); });
		
		if (($('#cgv').prop('checked') == true) && ($('#cgv_year').prop('checked') == true)) {
			$('.payment_module a').unbind();
		} else {
			$('.payment_module a').click(function(e){
				e.preventDefault();
			});
		}
	}
	$('#cgv, #cgv_year').change(function() {
		activeLink();
	});	
	activeLink();
});
1

W ostateczności, do linka możesz dodać coś z css, np. klasę z:
pointer-events: none;
lub
display: none;

0
czysteskarpety napisał(a):

W ostateczności, do linka możesz dodać coś z css, np. klasę z:
pointer-events: none;
lub
display: none;

Dziękuję za odpowiedź. Po części jest to dobre rozwiązanie jednak nie będę mógł wtedy wyświetlić alertu, że należy zaznaczyć te dwa pola :/

0

Jedyne co mi przychodzi do głowy to usunięcie "hrefów" i zastąpienie ich #. Po zaakceptowanie dwóch checkboxów .. przywrócenie tych linków.

1
shl napisał(a):

Dziękuję za odpowiedź. Po części jest to dobre rozwiązanie jednak nie będę mógł wtedy wyświetlić alertu, że należy zaznaczyć te dwa pola :/

Niby czemu? Dodajesz klasę do linku, a potem ją usuwasz, gdy checkbox jest zaznaczony.

0

Z tego co sprawdzałem, w przypadku zastosowania:

pointer-events: none;

lub

            $('.payment_module a').click(function(e){
                e.preventDefault();
            });

Nie wypluje mi też alertu, że należy zaznaczyć poszczególne pola.

0

Jakiego alertu? jak ten alert wywołujesz?

1 użytkowników online, w tym zalogowanych: 0, gości: 1