2008-09-05 4 views
6

jquery UI 대화 상자의 demos 모두 "식물"테마를 사용합니다. 사용자 정의 테마가 필요했기 때문에 themeroller를 사용하여 CSS 파일을 생성했습니다. 내가 사용했을 때 모든 것이 잘 작동하는 것처럼 보였지만 나중에 대화 상자에 포함 된 입력 요소를 제어 할 수 없다는 것을 알았습니다 (즉, 텍스트 필드에 입력 할 수없고 확인란을 선택할 수 없음). 추가 조사를 통해 대화 속성 "모달"을 true로 설정하면이 문제가 발생한다는 사실이 밝혀졌습니다. 식물상 주제를 사용할 때 이런 일은 발생하지 않습니다.themeroller css를 사용할 때 jquery 대화 상자의 문제점

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> 
<title>sample</title> 
<script src="jquery-1.2.6.min.js" language="JavaScript"></script> 
<link rel="stylesheet" href="jquery-ui-themeroller.css" type="text/css"> 
<script src="jquery-ui-personalized-1.5.2.min.js" language="JavaScript"></script> 
<script src="TopMenu.js" language="JavaScript"></script> 
</head> 
<body> 

<input type="button" value="click me!" id="my_button"> 
<div id="SERVICE03_DLG" class="ui-dialog">please enter something<br><br> 
<label for="something">somthing:</label>&nbsp;<input name="something" id="something" type="text" maxlength="20" size="24"> 
</div> 

</body> 
</html> 
: 여기
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> 
<title>sample</title> 
<script src="jquery-1.2.6.min.js" language="JavaScript"></script> 
<link rel="stylesheet" href="flora/flora.all.css" type="text/css"> 
<script src="jquery-ui-personalized-1.5.2.min.js" language="JavaScript"></script> 
<script src="TopMenu.js" language="JavaScript"></script> 
</head> 
<body> 

<input type="button" value="click me!" id="my_button"> 
<div id="SERVICE03_DLG" class="flora">please enter something<br><br> 
<label for="something">somthing:</label>&nbsp;<input name="something" id="something" type="text" maxlength="20" size="24"> 
</div> 

</body> 
</html> 

다운로드 한 themeroller 테마를 사용하는 HTML입니다 : 여기
topMenu = { 
    init: function(){ 
     $("#my_button").bind("click", function(){ 
      $("#SERVICE03_DLG").dialog("open"); 
      $("#something").focus(); 
     }); 

     $("#SERVICE03_DLG").dialog({ 
      autoOpen: false, 
      modal: true, 
      resizable: false, 
      title: "my title", 
      overlay: { 
       opacity: 0.5, 
       background: "black" 
      }, 
      buttons: { 
       "OK": function() { 
        alert("hi!"); 
       }, 
       "cancel": function() { 
        $(this).dialog("close"); 
       } 
      }, 
      close: function(){ 
       $("#something").val(""); 
      } 
     }); 
    } 
} 

$(document).ready(topMenu.init); 

는 식물 테마를 사용하는 HTML입니다 : 여기

은 JS 파일입니다

보시다시피, 참조 된 CSS 파일과 클래스 이름 만 다릅니다. 누가 잘못 될 수 있는지에 대한 단서가 있습니까?

@David : 시도해 보았지만 작동하지 않는 것으로 보입니다 (FF 또는 IE에서도 아님). 나는 인라인 CSS를 시도 :

style="z-index:5000" 

을하고 또한 외부 CSS 파일 참조를 시도했다 :

#SERVICE03_DLG{z-index:5000;} 

그러나이 작품의도를. 네가 제안한 것에 뭔가 빠졌어?

편집 :
해결 방법 : brostbeef!
원래 플로라를 사용하고 있었기 때문에 실수로 클래스 속성을 지정해야한다고 생각했습니다. 사실, 플로라 테마를 실제로 사용하는 경우에만 해당됩니다 (샘플 에서처럼). 사용자 정의 테마를 사용하는 경우 클래스 속성을 지정하면 이상한 동작이 발생합니다.

+0

아직이 문제가 있습니까? – MDCore

+0

코드 및 대체 링크를 제거한 이유를 지금 알 수 없으므로 잘 모르겠습니다. – clairestreb

+0

죄송합니다. 완전히 잊어 버렸습니다. 코드를 다시 가져올 수 있도록 게시물을 편집 할 수 있는지 확인합니다. – Ovesh

답변

3

나는 그것이 다른 클래스를 가지고 있기 때문에라고 생각합니다.
<div id="SERVICE03_DLG" class="flora"> (식물)
<div id="SERVICE03_DLG" class="ui-dialog"> (사용자 정의) 심지어 식물 테마

, 당신은 여전히 ​​대화로 정의 UI를-대화 상자 클래스를 사용합니다.

이전에 모달을 수행했으며 태그에 클래스를 정의하지도 않았습니다. jQueryUI가이를 처리해야한다.

클래스 속성을 없애거나 "ui-dialog"클래스를 사용해보십시오.

+0

감사합니다! 이것은 실제로 식물상의 문제입니다. 나는 그것을 반영하기 위해 질문을 편집 할 것이다. – Ovesh

1

Firebug에서 재생 한 후에 기본 div 인 "SERVICE03_DLG"의 ID에 1004보다 큰 Z- 색인 속성을 추가하면 작동합니다. 나는 5000과 같이 극단적으로 높은 것을주고 싶습니다.

나는 이것을 일으키는 themeroller CSS에 무엇이 있는지 잘 모르겠습니다. 아마 타겟 div의 위치 속성이 변경되거나 무시되어 대화 상자가됩니다.

0

남자, 이것은 좋은 것입니다. 이 두 페이지에서 여러 가지 작업을 시도했습니다. CSS를 모두 남겨두고 두 페이지를 모두 시도해 보셨습니까? Firebug를 사용하여 두 페이지의 머리글에서 CSS를 제거했지만 입력 내용은 여전히 ​​다른 쪽이 아닌 하나에서 작동했습니다. 그러나 Firebug가 렌더링에서 CSS를 완전히 제거하지는 않을 것이라고 생각합니다. 코드에서 실제로 제거하면 다른 결과가 나옵니다.

또한 마우스를 사용하여 텍스트 상자에 텍스트를 붙여 넣을 수 있음을 알았습니다. 키보드 입력을 허용하지 않습니다. 그것을 방해 할 이벤트 핸들러가없는 것 같습니다.

1

대화 상자와 탭으로 themeroller 테마를 구현하려고 시도했습니다. themeroller CSS가 공식 jQuery과 작동하지 않습니다.특히 대화 상자와 탭에 대해서는 공식 jquery 클래스에서 요소 클래스를 수정했습니다. 여기를 참조하십시오 : 는 http://filamentgroup.com/lab/introducing_themeroller_design_download_custom_themes_for_jquery_ui/

사용자의 코멘트 :

3) I 다운로드 생성 된 테마가 완료되지 것 같다 - 을 나는 그것에게 식물로 작업 내 탭 를 (사용하려고 할 때 테마) 문서 예를 들어 동일한 코드 이 탭

로 스타일되지 않습니다 내가 붙어 있었고 0123을 사용하여 복귀 할 것이라고 생각 3로 실행하는 데 내 HTML을 조정하면 내 탭을 위해 사용하고 < 리> 아이템을 제공하는 "데모" 파일의 소스 코드를 읽어 에 의해 발견 된 이후"식물"... 나는이 은 "UI - 탭 -을 nav-item "클래스를 선택하면 이 작동합니다.

themeroller가 생성 한 테마는 불완전하게 불완전하므로 입니다. 탭 항목이 불완전하면 은 내가 무엇이 불완전한 지 궁금합니다. 그것 오히려 실망했다. :(themeroller 개발자가 다음

코멘트 :

3) 우리는 살펴 보겠습니다. 당신은 그 클래스 이 플러그인에 의해 추가되어야한다고 맞습니다. 지금은 그래도 은 마크 업에 태그를 추가하지 않아도되므로 themeroller 테마를 사용할 수 있습니다. 우리는 그것을 밖으로 검사 할 것이다, 그러나. 나는 선택기가 부모 ui-tabs selector 대신에 이 될 수 있다고 생각하지만, 나는 우리 셀렉터에서 요소를 사용하지 않으려 고 생각했다. 할일 목록에 을 고려하십시오.

관련 문제