私はjquery-uiを使用してダイアログウィンドウを作成しています。ダイアログに表示されるdivにはクラス 'dialog'があります。jquery-uiダイアログ、ダイアログウィンドウの外のdivにのみCSSを適用するには?
私たちが最初のHTMLを見てみましょう:
<div class="click_me">
Click Me
</div><!-- end of class click_me-->
<div class="dialog">
this is my dialog
</div>
CSSやJavaScriptのフォロー:
<style type="text/css">
.click_me{
width:120px;
border:1px solid red;
text-align:center;
}
.dialog{
width:230px;
border:1px solid green;
text-align:center;
}
</style>
<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".click_me").click(function(){
dialog_my= $(".dialog").clone(false);
dialog_my.dialog();
$(".dialog", dialog_my).css('width','450px');
}
);
});
</script>
しかしライン$(".dialog", dialog_my).css('width','450px');
は効果がありません。コンテキストを省略してコードを$(".dialog").css('width','450px');
と書くと、CSSはフラットなWebページとモーダルウィンドウの両方に適用されます。
モーダルウィンドウでのみCSSを適用できますか?
papaiatisさんの返信で私のコメントをご覧ください。 –
jQueryはdivの中のdivを見つけようとしています。最も外側のdivはDOMのトラバーサルの一部ではありません。 [this fiddle](http://jsfiddle.net/DCYNk/)からわかるように、CSSはdivには適用されません。 –