2012-04-19 3 views
3

그래서 JS Bin에서 이것을 재현하려고 시도했지만 dojo가 작동하지 못했습니다. 그것은 크롬과 파이어 폭스에서 동일합니다.Dojo 체크 박스가 체크되었지만 마우스 위로 움직일 때까지 표시되지 않음

나는 체크 박스와 보이는 도장 준비 기능이

dojo.ready(function() { 
    dijit.byId('checkbox1').checked = true; 
}); 

같은 페이지가 렌더링 이제 때 체크 체크 박스 위에 마우스를 UNTIL 체크 표시되지 않습니다하지만 성공적으로 실행 = 사실!

브라우저가 체크 박스 위로 영역을 다시 채색하지 않았습니다. 체크 상자 위로 마우스를 가져 가면 브라우저가 다시 표시되어 진드기를 볼 수 있습니다.

누구나 전에 이것을 경험할 수 있습니까?

답변

4

당신은 사용할 필요가 :

dijit.byId('checkbox1').set('checked', true) 

대신 직접 속성을 설정합니다. 속성 값을 변경할 때 다른 처리가 필요할지 모르기 때문에 모든 위젯에 대해이 규칙을 따라야합니다.

+1

처럼 보일 것입니다. – Andrew

2

나를 위해 문제는 위젯의 CSS를 제대로로드하지 못하는 것이 었습니다.

Dojo의 체크 박스는 기본 HTML 체크 박스가 아닌 스프라이트 시트를 사용하여 표시됩니다.

필자는 dojo의 css (claro 테마 사용)를 재정의하고 spritesheet 이미지를 숨기고 그것을 뒷받침하는 일반 HTML 체크 박스를 보여줌으로써 오버 라이드했다.

따라서 dojo 테마 CSS 파일 (claro.css for me) 중 하나가 CSS와 함께 포함되어 있는지 확인하십시오. 귀하의 html에있는 <body> 태그에 class="claro" 또는 사용중인 테마가 있는지 확인하십시오. (이 경우 클레에서 다시) 스프라이트 시트와

당신의 확인란이 프로그래밍 방식으로 생성 된 내 위젯 충분하지 dojo claro-theme checkbox하지 html checkbox

+0

감사합니다. 그것은 저를위한 그런 간단한 해결책이었다. –

관련 문제