2014-05-21 3 views
1

이벤트 처리기에 대한 jqplot 공식 웹 페이지에 나온 예제 중 하나를 따랐습니다. 기본적으로 확인란에 체크 표시가되어있는 경우 다른 시리즈를 표시하고 싶습니다. 전체 플롯 충돌하게 오버레이를 definining 후jqplot 충돌을 만드는 이벤트 처리기

$("input.dataSeries-checkbox").attr("checked", false); 
$("input.dataSeries-checkbox").change(function(){ 

    plot1.series[1].show = false; 
    plot1.series[2].show = false; 
    plot1.series[3].show = false; 

    if ($('input[name='VSNF']').get(0).checked === true) { 
     plot1.series[1].show = true; 
    } 

    if ($('input[name='ISNF']').get(0).checked === true) { 
     plot1.series[2].show = true; 
    } 

    if ($('input[name='RSNF']').get(0).checked === true) { 
     plot1.series[3].show = true; 
    } 
    plot1.replot(); 
}); 
}); 

:

나는 다음과 같은 이벤트 핸들러를 사용합니다. 나는 이벤트 처리기가 스크립트 충돌을 일으키는 것임을 확인했다. (다른 것들은 모두 잘 작동하고 모든 괄호, 괄호는 스크립트가 끝나기 전에 정식으로 닫혔다.) 무엇이 스크립트 충돌을 일으키는 지 알 수 있습니까?

$("input[type=checkbox][name='VSNF']").change(function(){ 
    plot1.series[1].show = this.checked; 
    plot1.replot(); 
}); 

과 :

<li><input class="dataSeries-checkbox" type='checkbox' name='USNF'>U Filter</li> 
<li><input class="dataSeries-checkbox" type='checkbox' name='BSNF'>B Filter</li> 
<li><input class="dataSeries-checkbox" type='checkbox' name='VSNF'>V Filter</li> 
<li><input class="dataSeries-checkbox" type='checkbox' name='RSNF'>R Filter</li> 
<li><input class="dataSeries-checkbox" type='checkbox' name='ISNF'>I Filter</li> 

답변

0

나는 결국 더 straigthforward 방법으로 이벤트 핸들러를 리모델링하여 문제를 제거하는 관리 : 참고 또한 다음과 같은 HTML 부분에 관련 체크 박스를 추가 좀 더 간단한 체크 박스를 사용하십시오 :

<li><input type='checkbox' name='VSNF'>V Filter</li> 

비슷한 것을 사용하면 도움이 될 것입니다.

+0

추가로 모든 대상 데이터 시리즈의 표시 옵션이 "false"로 설정되어 있어야한다는 것을 잊어 버렸습니다. – Demetrius