2010-08-16 2 views
1

나는 jstree, 트리 뷰를 만드는 jquery 플러그인을 시험하고있다. 그것은 잘 작동하지만, 그것의 내부 동작의 일부를 얻을 수 없습니다. 그리고 겉으로보기에 단순한 것은 나를 미친 듯이 괴롭 힙니다. 폴더 아이콘 등의 이미지는 어디서 왔습니까? 즉, 테마를 정의하지 않더라도 결과의 폴더에 대한 기본 아이콘이 여전히 있음을 의미합니다. 그리고 사과를 테마로 변경하면 아이콘이 바뀝니다. 그러나 나는이 이미지들이 어디서 왔는지 전혀 모른다. 나는 테마 CSS 파일에서 그들에 대한 참조를 찾을 것으로 기대했을 지 모르지만 나는 그렇지 않다.jstree jquery plugin images를 어디에서 찾을 수 있습니까?

누군가가 이것을 설명 할 수 있으면 좋겠다. 그리고 그들에게 참조하고 변경할 수있는 방법을 가르쳐 주면 고맙겠습니다! 특히, 닫힌 폴더와 열려있는 폴더에 대한 아이콘이 하나씩 있도록 아이콘을 변경할 수 있어야합니다.

답변

3

jsTree는 코어 CSS를 페이지에 삽입합니다. 원본을 보시면 기본 테마를 사용하고 .js 위치와 관련된 이미지를 찾습니다.

당신은 당신이 모든 일이 일어나는 경우, 단지 브라우저가 url(의 소스보고뿐만 아니라 아이콘을 설정하는 다양한 플러그인을 볼 수는 소스 여기에 또한 http://code.google.com/p/jstree/source/browse/trunk/jquery.jstree.js#259

소스에서이 일을 볼 수 있습니다.

.jstree-apple ins { background-image:url("d.png"); background-repeat:no-repeat; } 
: 이미지 자체에 관해서는


는 항상 테마 아이콘 d.png라는 하나 개의 이미지 파일이있어, 모든 아이콘은, 예를 들면의이 사과 아이콘을 살펴 보자, 그것은 CSS sprite map이다, 여기에서 행진

.jstree-apple .jstree-open > ins { background-position:-72px 0; } 
.jstree-apple .jstree-closed > ins { background-position:-54px 0; } 
.jstree-apple .jstree-leaf > ins { background-position:-36px 0; } 
: 모든 <ins> 요소에 대해

는 예를 들어, 그냥 스프라이트 맵의 위치를 ​​조정할 수 있습니다 노드의 여러 유형에 대해 다음 배경을 설정합니다

이것은 CSS 스프라이트가 작동하는 방식으로, 하나의 이미지를 사용하고 작은 부분을 봅니다 ... 다른 아이콘은 이미지의 다른 위치에서 시작하여 아이콘 크기와 동일한 작은 부분입니다.

+0

감사합니다. 좋은 답변입니다. 또한 스프라이트에 대한 정보. 적어도 당신이 js에서 언급 한 부분을 발견했습니다. 그러나 나는 아직도 변화시키는 방법을 얻지 못한다. 왜냐하면 아이콘의 크기 등 js에 설정되어 있기 때문에 사과 CSS는 여전히 사과 테마에서 와야합니까? 따라서 apple \ style.css를 변경하면 상황이 바뀔 것으로 예상됩니다. 하지만 전체 apple \ style.css를 주석 처리하고 아무 것도 바꿀 수는 없지만 캐시 된 정보를 없애기 위해 페이지를 다시로드하더라도 ... – Anders

+0

@Anders - 캐시가있는 것 같습니다 문제가 계속되고 ... 아니면 아마도 당신의 CSS의 복사본을 잘못된 장소에 편집 중입니까? themes 폴더는'jquery.jstree.js' 파일 옆에 있어야합니다. –

+0

문제가 무엇인지 알아 냈습니다. VS 프로젝트에 CSS 파일을 포함 시켰지만 themes/apple/style.css와 같은 폴더 구조를 사용하지 않았기 때문에 변경 사항이 변경되었습니다. 페이지를 업데이트하지 않았습니다! 귀하의 답변을 주셔서 감사합니다, 그것은 바로 궤도에있어. – Anders