2013-01-01 2 views
0

에 의해 자동 선택 해제됨에 따라 오버플로 목록 상자를 아래로 움직여 OK, 제목이 복잡해 보이지만 실제로하고 싶은 생각은 실제로 매우 간단합니다.각 체크 박스가 루프

나는 루프에 의해 자동 채워진리스트 박스를 가지고있다. 이 같은 ..

스크롤 할 수 있지만 종종 많은 항목이 포함되어 있습니다.

각 루프가 초당 1 개 정도 진행되는 동안 체크 박스의 선택을 취소합니다.

각 확인란을 선택하지 않은 상태에서 확인란을 선택 취소하면 자동으로 상자를 스크롤하여 아래쪽 항목이 항상 처리 될 다음 항목 또는 다음 항목이 항상 체크 표시가되도록합니다.

누구든지 아이디어가 있습니까? 내가 scrollTop과 물건을 시도했지만 자바 스크립트/CSS가 좋지 않아.

편집 : 나는 몇 가지 시도했지만 didnt도 가까이 다가와. 작은 코드를 추가 하겠지만, 20,000 줄짜리 스크립트에서 나온 것일 테니,별로 의미가 없을 것입니다. 그것과 물건에 대해 그것을 흔들어 자유롭게 느낌.

m += '<DIV style="max-height:220px; overflow-y:auto;">'; 
    m += '<TABLE align=center cellpadding=0 cellspacing=0></td><TD width=15><input type=checkbox id=pbsrcScout_All></td><TD>COLUMN 2</td></tr>'; 
    var coordlist = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13"] // just made this up so it makes some small sense. 
    for (i = 0; i < coordlist.length; i++) { 
    var addOn = coordlist[i]; 
    m += '<TABLE align=center cellpadding=0 cellspacing=0>' 
    m += '<TR><TD><INPUT type=checkbox id="pbsrcScoutCheck_' + coordlist[i] + '"></td><TD>' + coordlist[i] + '</td><TD><DIV id=statusMessage_' + addOn + '></div></td></tr>'; 
    } 
    m += '</table>' 
    m += '</table></div>'; 

답변

0

잘하면 질문을 잘 이해했습니다. jQuery를 사용하여 행복하다면 다음을 시도해 볼 수 있습니다. 이 기능을 사용하려면 기본 div가 고유 한 ID를 제공해야합니다. 이 예에서는 '부모'를 사용했습니다.

당신은 1 초마다 각 확인란을 검사하는 루프가 있다고 했으므로 setInterval을 사용하여 루프를 에뮬레이션했습니다.

Working Example

var checkboxes = $('[id^=pbsrcScoutCheck_]'), // find all checkboxes 
    checkboxIndex = 0, // so we know what box needs to be unchecked next 
    parent = $("#parent"), // the main parent div container. 
    interval; 

// emulate you're loop that checks each box 
interval = setInterval(function() { 
    var checkbox = $(checkboxes[checkboxIndex]).attr('checked', false); 
    if (checkbox.position().top + (checkbox.height() * 3) > parent.height()) { 
     parent.stop(true, true).animate({ 
      scrollTop: "+=" + (checkbox.height() * 3) 
     }, 500); 
    } 

    checkboxIndex++; 
    if (checkboxIndex > checkboxes.length) { 
     clearInterval(interval); 
    } 
}, 1000); 
관련 문제