2016-10-31 25 views
1

何らかの理由で、子のサイズ変更ができません。私はサイズ変更次いで$(".parent").resizable({alsoResize: ".child"});を試みJqueryのサイズ変更が子クラスで正しく動作していない

<div class="parent"><img class="child"></div> 
<div class="parent"><img class="child"></div> 
<div class="parent"><img class="child"></div> 

が起こるが、それは代わりに、対応する画像のすべての画像のサイズを変更しています。 iは

$(".parent").resizable({ alsoResize: $(this).closest('.child') }); 

又は

$(".parent").resizable({ alsoResize: $(this).find('.child') }); 

をしようとしたとき

のみDIV内部画像ではなく、サイズ変更されます。なぜこれが起こるのですか?また、私は$(".child").resizable();が、その後<div class="ui-wrapper" >が来ている使用して、それが

<div class="parent"> 
    <div class="ui-wrapper"><img class="child ui-resizable"></div> 
</div> 

になるが、ここで何の問題があることはIMGが表示どれも自動的に来ていないので、幅およびUI-ラッパークラスの高さを示していないときに

設定または設定しない0。問題を見つけるのを助けてください。

+0

'this'は' .parent'要素 –

+0

を参照していないので、私は何をする必要がありますか?私が$( "。parent")を選ぶことから始めたので、なぜ親要素を参照していないのですか?私は選択後、これは親要素を参照すると思う –

+0

私はあなたのために答えを追加 –

答えて

0

まず、セレクタが間違っています。プレフィックス.がありません。次にthis.parent要素を参照していないため、イベントハンドラが作成されているスコープを参照しています。これを修正するには、.parent要素をループして個別にイベントをアタッチします。これを試してください:

$(".parent").each(function() { 
    $(this).resizable({ 
     alsoResize: $(this).find('.child') 
    }); 
}); 
+0

alsoResizeの後に必要なセミコロンはありません:$(this).find( '。child')。 –

+0

ありがとうございます。各機能を使用する理由を記入してください。 。以前は、各関数を使わずにコードを書いていたので、divのサイズ変更も機能していました。 –

+1

あなたが持っているロジックは、現在の '.parent'の' .child'要素を知ることによって決まるからです。そのためには、コードは各 '.parent'要素のスコープの下で実行されなければなりません。なぜなら、ここでは' each() 'が必要なのです。 –

関連する問題