我们使用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”。