2017-10-17 11 views
0

사용자를 지정된 링크로 보내기 위해 클릭하면 사이드 바 탐색에서 확인란을 허용하는 간단한 코드 행을 작성했습니다. 확인란은 필터로 작동합니다. 상호 작용 생성체크 박스 링크 용 jquery/javascript 단순화

<li class="inactive" aria-selected="false"> 
<input id="path1" type="checkbox" value="Accessories"> 
<a href="href">Accessories</a> 
</li> 

그리고 JQuery와/자바 스크립트 :
여기 체크 박스의 HTML입니다

$('#path1').click(function(){ 
       window.location='href'; //href would be a unique link 
    }); 

이 문제는 이러한 상호 작용이 일을 점점되지 않습니다, 내가 가지고 있어요 논리 문제. 작성 방법은 체크 박스의 ID를 대상으로하는 것입니다. 그것은 확장 가능하지 않습니다. 8 개의 링크가 그렇게 나쁘지는 않지만 500 개의 링크는 각각 고유합니다. 아이디어를 얻을 수 있습니다.

모든 체크 박스를 대상으로하지만 각 링크마다 고유 한 링크가 허용되는 솔루션이 있습니까? 나는. 등

+1

여기서 'href'는 올 것입니까? –

+1

'$ ("input [type = 'checkbox]'"). click (....) 또한이 작업은 "minification"과 관련이 있는데, 이는 코드를 리팩토링하여 바이트? –

+0

'href'는 링크의 스탠드입니다. 그래서 클릭하면 '/ products/valves /'와 같은 것이 될 수 있지만, 각각 다른 장소로가는 여러 개의 체크 박스가 있습니다. 실제 링크를 사용하는 예제를 망칠 것이라고 생각했습니다. –

답변

1

다음과 같은 작업을 수행 할 수 있습니다 위의 코드는 당신이 필요로 여러 번 반복하고 당신이 원하는대로 당신이 체크 박스의 많은 수를 가질 수 있도록 할 수 있습니다

<input type="checkbox" data-custom-click="href"> 

.

위의 HTML에있는 href은 해당 확인란의 링크를 나타냅니다.

그리고 하나 라이너 자바 스크립트 :

$("input[data-custom-click]").click(function(){ 
    window.location=$(this).attr("data-custom-click"); 
}); 

선택기 input[data-custom-click] 모든 사용자 정의 행동 확인란을 선택되고 $(this)가 클릭 확인란을 선택합니다.

+0

좋아 보인다. 나는 시험 할 것이지만 그것은 그것이 가장 잘 작동 할 것임을 의미한다. –

+0

거기에서 디버깅 할 수 있도록 코드의 js 바이올린을 제공 할 수 있습니까? –

+0

이것은 내 문제를 해결했습니다. 고맙습니다! DRY를 처음으로 다루는 것은 나에게 많은 도움이되었습니다. –

1

, 클래스가이 옵션을 선택하지 않습니다 있도록 체크 박스 모두 같은 HREF을하게 타겟팅 href 값을 가정하면 입력을 다음 링크에서 오는 당신은 사용할 수 있습니다

$('li.inactive input[type="checkbox"]').click(function(){ 
    window.location = $(this).next('a').attr('href') 
}); 
+0

내 href를 잘못된 위치에 배치 했습니까? 다른 곳으로 옮기고 제공 한 코드로 타겟팅해야한다고 말하고 있습니까? –