2008-09-05 18 views
6

jquery UIダイアログのdemosはすべて "flora"テーマを使用しています。カスタマイズされたテーマが欲しかったので、私はthemerollerを使ってCSSファイルを生成しました。私が使ったとき、すべてうまくいっていたようでしたが、ダイアログに含まれている入力要素を制御できないことが判明しました(つまり、テキストフィールドに入力できない、チェックボックスをチェックできません)。さらに調査すると、ダイアログ属性 "モーダル"をtrueに設定すると、これが発生することが明らかになりました。私が植物相のテーマを使用している場合、これは起こりません。ここでthemeroller cssを使用しているときのjqueryダイアログの問題

は、JSファイルである:ここで

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である:ここでは

<!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です:

<!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> 

ご覧のとおり、参照されている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はあなたのためにそれを処理する必要があります。

class属性を削除するか、 "ui-dialog"クラスを使用してみてください。

+0

ありがとう!これは実際には植物相の問題であることが分かります。それを反映するように質問を編集します。 – Ovesh

1

Firebugでこれを再生した後、デフォルトのdiv、ID "SERVICE03_DLG"に1004を超えるZ-インデックス属性を追加すると、それが機能します。私は5000のような非常に高い何かを、ちょうど確かに与えるだろう。

私は、これを引き起こすthemeroller CSSに何が入っているのか分かりません。彼らはおそらくターゲットdivの位置属性を変更したり無視したりしてダイアログに変わってしまったでしょう。

0

男、これはいいです。私はこれらの2つのページでたくさんのことをやってみました。 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を調整した場合、私は私のタブのために使ってい < LI>のアイテムを与えることを 『デモ』 ファイルのソースコードを読む によって発見以来「植物相は、「...私が持っている 「UI-tabs-をnav-item "クラスの場合は が動作します。

themerollerによって生成されたテーマは、 であるため、残念ながら不完全です。 タブの情報が不完全な場合は、 が不完全なものになります。それは はかなりイライラしていた。 ThemeRollerの開発が続い:(

はコメント:

3)私たちは、その見てみましょう。あなたはそれらのクラス がプラグインによって追加されるべきであることは間違いありません。今のところ、 はマークアップに追加するだけで大​​したことではないので、 はthemerollerテーマを使用できます。しかし、我々はそれをチェックアウトします。代わりに親のui-tabsセレクタに基づいてセレクタを にすることができますが、私は のセレクタで要素を使用しないようにしていたと思います。 To Doリストの と考えてください

関連する問題