FancyZoomを使用して、画面上に標準の JavaScript ポップアップ効果を生成しています。
JQuery を使用して、ユーザーのクリックに応答して、FancyZoom がユーザーに対してポップアップしたばかりの領域内の色を (.attr を使用して) 変更したいと考えています。
(以下のコード サンプルでは、ポイントを説明するためにすべての .attr を単純なものに置き換えましたalert
。Bar.png は、クリックすると Hello World を表示する金色の四角形です。[テスト] をクリックすると、おしゃれなポップアップが表示されます。 )
このように bar.png をポップアップの外に置くと、クリックしたときに期待どおりに応答します。
<script type="text/jscript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/fancyzoom.js"></script>
<script>
$(document).ready(function() {
$('#foo').on({ 'click': function() { alert('hello world'); } });
});
</script>
</head>
<body>
<a id="myFancyZoomPopup" href="#Test"><span>test</span></a>
<div id="Test">
<p> this is some text in the popup</p>
</div>
<img id="foo" src="i/bar.png" alt="asdf"/>
<script type="text/javascript">
$('#myFancyZoomPopup').fancyZoom({ directory: 'i'});
</script>
</body>
しかし、必要な場所(FancyZoom ポップアップ パネル内) に配置すると、アラートは発生しません。
<script type="text/jscript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/fancyzoom.js"></script>
<script>
$(document).ready(function() {
$('#foo').on({ 'click': function() { alert('hello world'); } });
});
</script>
</head>
<body>
<a id="myFancyZoomPopup" href="#Test"><span>test</span></a>
<div id="Test">
<p> this is some text in the popup</p>
<img id="foo" src="i/bar.png" alt="asdf"/>
</div>
<script type="text/javascript">
$('#myFancyZoomPopup').fancyZoom({ directory: 'i'});
</script>
</body>
結果: 金色の四角形をクリックしても、"hello world" は表示されません。