此功能将fancybox插件附加到某些图像。在图像滑块中单击图像时,它会在#hidden images
div中打开相应的较大图像。它适用于Internet Explorer,但在Firefox(3.6.9)中不起作用。如何让它在Firefox中运行?
<script type="text/javascript">
$(document).ready(function() {
$("#hidden_images a").fancybox();
$("#image_slider img").click(function(event) {
var $tgt = $(event.target);
var $desc = $tgt.attr("longdesc");
$("#" + $desc).click();
});
});
</script>
这是我的HTML:
<div id="image_slider" class="imageflow">
<img src="images/press/charity1.jpg" longdesc="charity1" width="250" height="250" alt="Charity 1" />
<img src="images/press/charity2.jpg" longdesc="charity2" width="250" height="250" alt="Charity 2" />
</div>
<div id="hidden_images">
<a id="charity1" href="images/press/charity1_lg.jpg" style="display:none;"><img src="images/press/charity1_lg.jpg" alt="charity one caption"/></a>
<a id="charity2" href="images/press/charity2_lg.jpg" style="display:none;"><img src="images/press/charity2_lg.jpg" alt="charity two caption"/></a>
</div>
答案 0 :(得分:3)
您的问题可能是longdesc
的使用,即not supported by major browsers。 Internet Explorer可能允许您向DOM无法识别的属性添加属性,而FireFox可能会禁止此行为。尝试将描述存储在alt属性中,或者如果需要,可以通过jquery的data方法存储。
答案 1 :(得分:2)
出于所有意图和目的,你可以拥有一个foo =“bar”属性并且仍然有用。这是我如何编写jquery的内部部分
<script type="text/javascript">
$(document).ready(function() {
$("#hidden_images a").fancybox();
$("#image_slider img").click(function(event) {
window.location = $("#" + $(event.target).attr("longdesc")).attr("href");
});
});
</script>
在safari,ff和chrome上为我工作。
编辑 Derr,我想我误读了你的帖子,可能不是你想要的......
编辑2 AHA时刻,以下是您的操作方法。
$("#" + $(event.target).attr("longdesc")).fancybox().trigger("click");
答案 2 :(得分:1)
我也遇到了火狐没有使用onclick事件的同样问题。
我的要求:我必须动态添加多个相册,因此我必须将每个相册的ID传递到fancybox,以便图库可以打开特定相册的图像。
我做谷歌搜索,我从this URL找到了一些技巧,但这在我的情况下不起作用。我在搜索和改变时损失了3-4个小时。最后,我在我的HTML代码中进行了一些修改,并在相册图片标签上激活onclick事件而不是锚点标签,它在Mozilla,IE-7,IE-8,Safari以及chrome中都能正常工作。
onclick="$('a.pop{$key}').fancybox().trigger('click');"
// { @$key = Use your dynamic id }
我希望这对你们有所帮助。
答案 3 :(得分:0)
我遇到了类似的问题,其中click事件在firefox中不起作用,只是为了确定执行没有在&#34; span&#34;上被触发。将属性从跨度移动到&#34;按钮&#34;标签,它开始工作。
更改html:<span class="some-class">
成为:<button class="some-class">
Javascript:
$(document).on('click','.some-class',function(){alert( "Test click event.");});
简而言之,您需要解决您正在侦听的标记的事件类型。