【问题标题】:Jquery click function only fires oncejQuery点击功能只触发一次
【发布时间】:2012-08-25 19:31:36
【问题描述】:

我正在使用翻书插件Jquery Booklet,其中一个功能是转到翻书中的特定页面。

.booklet("gotopage", index)

我正在制作一个包含小缩略图布局的模式,我希望能够在其中单击缩略图,关闭模式,小册子页面将打开到图像所在的特定页面。我正在尝试以下代码,该代码第一次有效,但后续无效。任何帮助将不胜感激!

 $('.item a .counter').click(function(e){
   e.preventDefault();
   var gotoimage = $(this).text();
    $('#mybook').booklet("gotopage", gotoimage);
    $('#thumbs').modal('hide');
   });

【问题讨论】:

  • 缺失;在 $('#thumbs').modal('hide') 之后

标签: jquery function click var


【解决方案1】:

可能是您的模态被动态注入到 DOM,在您的绑定发生后, 在这种情况下,您可以使用一些委托,

 $(document).on('click','.item a .counter',function(e){
   var gotoimage = $(this).text();
    $('#mybook').booklet("gotopage", gotoimage);
    $('#thumbs').modal('hide');
    return false;
   });

【讨论】:

  • 我会检查的。顺便说一句,我正在使用 Twitter Bootstraps 模态 javascript。
  • 如果它不起作用,您可以尝试在函数中放置警报/日志。如果您收到警报/日志,那么问题出在您的逻辑上。
【解决方案2】:

$('.item a .counter') 是动态加载的吗?还是一开始都加载在页面中?

如果它们是在页面加载后加载的,您应该尝试使用 .live 而不是 .click

你有这个在 jsfiddle 还是什么的?

【讨论】:

    【解决方案3】:

    在对我的原始代码有些失望之后,我想出了如何使用这段代码来做到这一点:

    $(".item a").click(function () {
    var index = $(".item a").index(this) + 2;
    $('#mybook').booklet("gotopage", index);
    $('#thumbs').modal('hide');
    return false;
    });
    

    由于我的 Thumb 库和 Booklet Flipbook 具有相同的图像索引 #,因此可以正常工作。我只需要添加 + 2,因为我意识到 Booklet 有封面和封底,所以我需要让索引从 2 个数字开始,而不是从 0 开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多