2011-01-09 6 views
2

나는 달력이있어서 사용자는 날짜를 선택할 수 있어야합니다 (기본적으로 표 셀입니다). 문제는 선택에 대한 jQuery UI 지원이 약간 개략적이라는 것입니다. 특히, 사용자가 CTRL 키를 사용하여 날짜를 선택하거나 선택을 취소하면 선택 "중지"이벤트에서 매우 쉽게 선택한 요소의 전체 목록을 가져올 수 없습니다. 여기에 내가 현재하고있는 무슨이지만 매우 비효율적 인 것 같다jQuery UI 선택 - 비효율적 인 지원

global.selected = []; 


$('#calendar').selectable({filter: 'td', 

selected: function(event, ui) 
    { 
    for (var a = 0, id = +ui.selected.children[0].id, found = false; a < global.selected.length; a++) 
     { 
     if (global.selected[a] == id) 
      { 
      found = true; 
      break; 
      } 
     } 
    !found && global.selected.push(id); 
    }, 

unselected: function(event, ui) 
    { 
    for (var a = 0, id = +ui.unselected.children[0].id; a < global.selected.length; a++) 
     { 
     if (global.selected[a] == id) 
      { 
      global.selected.splice(a, 1); 
      break; 
      } 
     } 
    }, 

stop: function(event, ui) 
    { 
    console.log(global.selected); 
    } 
} 

답변

1

내가 jQuery를에 새로운 해요,하지만 난 이런 식으로 접근하고 모두 함께 세계를 피할 것.

$('#calendar').selectable({ 
    filter: 'td', 
    stop: function(event, ui) { 
     var selected = $.map($('#calendar > tbody > tr > td.ui-selected'),function(el) { 
      return el.id; 
     }); 
     console.log(selected); 
    } 
}); 
+0

멋진 아이디어. 고마워요! – Nick

관련 문제