首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接应在单击函数的帮助下打开fancybox ($.fancybox.pos)

链接应在单击函数的帮助下打开fancybox ($.fancybox.pos)
EN

Stack Overflow用户
提问于 2011-11-25 17:55:45
回答 2查看 2K关注 0票数 1

我想要一个按钮,它可以打开带有特定图片的fancybox rel-group。我不太确定这是否行得通,但我会试试看。我的问题是,如果用户单击链接,我希望执行jQuery。这是我的代码

代码语言:javascript
复制
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)能工作。但是,目前我没有让点击功能工作。我做错什么了?

编辑:

我目前的设置:

代码语言:javascript
复制
<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

更新:

新尝试:

代码语言:javascript
复制
<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);,但我得到的错误消息是,它不是一个函数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-25 19:53:27

pos函数从未起作用。所以我想到了一个删除的答案来使用点击函数。如果用户点击我的链接,它应该模拟点击图片库中的图片。

代码语言:javascript
复制
<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>

我需要几个小时才能弄清楚!

票数 2
EN

Stack Overflow用户

发布于 2011-11-25 17:59:06

使用匿名函数:

代码语言:javascript
复制
jQuery("a.enlarge").click(function() {
  jQuery.fancybox.pos(currentImage);
});

不过,我不知道currentImage是什么。

还可以试试下面的代码:

代码语言:javascript
复制
var currentImage = 0;

$('#your_carousel').jcarousel({
  itemLoadCallback: function(carousel, state) {
    currentImage = carousel.first;
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8272719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档