2014-07-17 2 views
2

select에서 select2를 사용하여 데이터를 동적으로 채우고 있습니다 (json 및 기타 필터 사용). 모두 list()이라는 함수가 있습니다.select2의 데이터 새로 고침

데이터를 새로 고치기 위해 드롭 다운을 열 때마다 list() 번으로 전화를 드리고 싶습니다. 내가 이런 일이 일어날 수있는 유일한 방법은 전화를했다. .select2("destroy").select2()

내 문제는 그것이 다른 요소에서 시작할 때만 작동한다는 것입니다. 예를 들어, $(".header").click(function() { ... }) 내장 이벤트 (select2-opening, select2-open, select2-focus ...) 중 하나를 호출하면 작동하지 않습니다.

드롭 다운 선택시 열어 볼 수있는 아이디어는 무엇입니까?

편집 : 은 단순히 "선택 2-개방"이벤트에 list()를 호출하여이 문제를 해결 할 수 있었다.

.empty()으로 시작하여이 채워지기 시작하여 select2 플러그인을 적용합니다.

EDIT2 : 더 나은 솔루션이 이벤트를 호출했다 실시간으로 더 나은 반응, "초점을 선택합니다."

답변

0

서버에서 데이터를 다시로드하려는 경우 ajax 생성자 속성을 사용하는 것이 좋습니다. 콜백을 사용하여 원격 데이터 다시로드 또는 로컬 데이터 다시로드를 빌드 할 수 있습니다. 업데이트 된 데이터를 가져 오는 메소드를 구현하십시오.

+1

물론 이것을 고려했습니다. 그러나이'list()'함수는 너무 복잡하기 때문에 select2의 기능을 변환하기에는 너무 많은 노력이 필요합니다. – wallace

+1

게다가 그냥 다시 확인해 보았습니다. select2의 ajax 기능은 검색을 통해서만 사용할 수 있으며 모든 검색 옵션이 표시되어야합니다. – wallace