2011-07-28 7 views
0

私は2つのシンプルなスクリプトを持っていますが、最初はdivをクリックすると表示されます。そのdivの中にはクローズボタン(非常に基本的なモーダルウィンドウ)があります。 qrTooltip divは、デフォルトで非表示になっています(display:none)。私は上に表示することができますが、クローズ機能は動作しません。私は、マークアップはjQueryのためにページがロードされるときにマークアップが存在しなければならないと仮定しています。また、divが隠されているため、アンカーにjQueryコードが追加されることはありません。jQuery - ページの読み込み時に隠されている要素の中にfadeOut()ボタンを置く方法は?

これを回避する方法はありますか?

<script language="javascript"> 
$('#btnQr').click(function() { 
    $('#qrTooltip').fadeToggle('fast', function() { 
    // Animation complete 
    }); 
}); 
</script> 

    <script language="javascript"> 
    $('#btnQrClose').click(function() { 
     $('#qrTooltip').fadeOut('fast', function() { 
     // Animation complete 
     }); 
    }); 
    </script> 

<a href="#" id="btnQr">show</a> 


<div id="qrTooltip"> 
<a href="#" id="btnQrClose">hide</a> 
</div> 
+0

より大きいファイル内のコードを明確に切り取って貼り付けて言うのは難しいです。今のやり方では全く動作しないはずなので、実際にはこの順番ではないと仮定しています。このコードは実際にあなたのファイル内でどのような順序ですか?それはどれもdocument.readyに包まれているようには見えませんが、このコードが実際にどこにあるかによって問題になる可能性があります。 –

答えて

1

ボタンが存在する前にあなたのJavascriptが評価されているからです。

<script language="javascript"> 
$(function(){ 
    $('#btnQrClose').click(function() { 
     $('#qrTooltip').fadeOut('fast', function() { 
      // Animation complete 
     }); 
    }); 
}); 
</script> 
+0

ありがとうRobbrit、それは完璧に機能しました。 – Aaron

関連する問題