我想要一个按钮,它可以打开带有特定图片的fancybox rel-group。我不太确定这是否行得通,但我会试试看。我的问题是,如果用户单击链接,我希望执行jQuery。这是我的代码
var js = "jQuery.fancybox.pos("+currentImage+");";
// create a new function from the "js" string
var newclick = new Function(js);
jQuery("a.enlarge").click(newclick);代码是基于this answer的。我希望jQuery.fancybox.pos(2)能工作。但是,目前我没有让点击功能工作。我做错什么了?
编辑:
我目前的设置:
<script type="text/javascript">
var currentImage = 0;
function getCurrImage(carousel, state){
currentImage = carousel.first-1;
jQuery("a.enlarge").click(function() {
alert(currentImage);
jQuery.fancybox.pos(currentImage);
});
}
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
scroll:1,
'itemLoadCallback': getCurrImage
});
jQuery('a[rel=example_group]').fancybox({
'transitionIn': 'none',
'transitionOut': 'none'
});
});
</script>jQuery.fancybox.pos(currentImage);不工作。currentImage似乎是正确的,但是如果单击4次按钮,警报会弹出4次。这意味着:
单击1: currentImage=0
点击2: currentImage=1,currentImage=1
点击3: currentImage=2,currentImage=2,currentImage=2
单击4: currentImage=3,currentImage=3
更新:
新尝试:
<script type="text/javascript">
var currentImage = 0;
function openfancy(){
jQuery.fancybox.pos(currentImage);
}
function getCurrImage(carousel, state){
currentImage = carousel.first-1;
jQuery("a.enlarge").unbind("click", openfancy);
jQuery("a.enlarge").bind("click", openfancy);
}
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
scroll:1,
'itemLoadCallback': getCurrImage
});
jQuery('a[rel=example_group]').fancybox({
'transitionIn': 'none',
'transitionOut': 'none'
});
});
</script>jQuery.fancybox.pos(currentImage);仍然不起作用。有机会吗?可能是因为我在那页上有多个情趣盒吧?我也尝试过使用jQuery('.fancybox').fancybox.pos(currentImage);,但我得到的错误消息是,它不是一个函数。
发布于 2011-11-25 19:53:27
pos函数从未起作用。所以我想到了一个删除的答案来使用点击函数。如果用户点击我的链接,它应该模拟点击图片库中的图片。
<script type="text/javascript">
var currentImage = 0;
function getCurrImage(carousel, state){
currentImage = carousel.first-1;
}
/*jQuery.noConflict();*/
jQuery(document).ready(function() {
jQuery('#fancycarousel').jcarousel({
scroll:1,
'itemLoadCallback': getCurrImage
});
jQuery('a[rel=example_group]').fancybox({
'transitionIn': 'none',
'transitionOut': 'none'
});
jQuery('#enlarge').click(function(){
jQuery(".jcarousel-item").eq(currentImage).children("a").click();
});
});
</script>我需要几个小时才能弄清楚!
发布于 2011-11-25 17:59:06
使用匿名函数:
jQuery("a.enlarge").click(function() {
jQuery.fancybox.pos(currentImage);
});不过,我不知道currentImage是什么。
还可以试试下面的代码:
var currentImage = 0;
$('#your_carousel').jcarousel({
itemLoadCallback: function(carousel, state) {
currentImage = carousel.first;
}
});https://stackoverflow.com/questions/8272719
复制相似问题