【问题标题】:jquery problem with quik flip pluginquik Flip插件的jQuery问题
【发布时间】:2011-06-27 00:09:34
【问题描述】:

我对名为 quikflip 的 jquery 插件有疑问。基本上,该插件会翻转具有翻转效果的图像,例如翻牌。我正在使用它来翻转我有 20 张卡片的卡片图像列表,它运行良好,但我只想翻转 3 张卡片并停止显示警报并转到下一个网址。

我是 jquery 的新手,不知道如何制作,我尝试制作 counter 但没有成功。

这是我尝试过的:

function count() {
  var n = $('quickFlip').length;
  if(n > 3){
   Alert('only 3' );
  }
  else {
   $('.quickFlip').quickFlip();
  //
  }
}

$('.quickFlip').click(countChecked);

插件的功能是这样调用的:

$(function() {
    $('.quickflip').quickFlip();
});

插件的代码在这里http://jonraasch.com/blog/quickflip-2-jquery-plugin

我刚刚完全复制了代码,没有显示任何警报。我有另一个脚本,每次单击时都会发送带有 div 的 ajax id 的卡,我不知道它是否干扰了我发送信息的代码:

 <script> $(document).ready(function(){ $(".element").click(function () {


    var cururl = document.location.href;
     var path = $(this).attr('title') ; 
    var cardid = $(this).attr('id') ;
     $.get('ajaxprocess.php', {Path: path,url: cururl,cardid:cardid}, function(data){ 

    $('#test').text(data);});
    });
    }); 
    </script>

元素就像是

<div class="quickFlip"> <div class="element" id= "id" title ="title">
<a href="#" class="quickFlipCta"> </a>
</div>
 the code for fliping is now like
 <script type="text/javascript">
 $(function() { $('.quickflip').quickFlip(); }); 
$(function() { 
var timesFlipped = 0; 
var threshold = 3; $('.quickflip').quickFlip().click(function() {
 if(timeFlipped++ >= threshold) { alert("Redirecting"); // do more stuff }});
}); 
</script>

我做错了什么?

【问题讨论】:

    标签: javascript jquery jquery-plugins


    【解决方案1】:

    在没有查看插件代码的情况下,我认为最简单的解决方案是将另一个.click() 事件绑定到您的$('.quickflip'),跟踪用户“翻转”了多少次,并在 n 数量。喜欢:

    $(function() {
    
       var timesFlipped = 0;
       var threshold = 3;
    
       $('.quickFlip').quickFlip().find('.quickFlipCta').click(function() {
             if(++timesFlipped >= threshold) {
                alert("Redirecting");
                // do more stuff
             }
          });
    });
    

    基本工作示例:http://jsfiddle.net/sMYzS/8/

    更多信息:

    $('.quickFlip').quickFlip(); 实际上似乎并没有进行翻转,它只是设置了翻转功能(将事件绑定到您的容器等)。所以你的

    else {
       $('.quickFlip').quickFlip();
    }
    

    似乎是错误的方法。基本上当你的函数被调用时你在做什么是

    if there are more than 3
       alert something
    else 
       initialize the quickflip functionality
    

    希望这会有所帮助。

    【讨论】:

    • 似乎我的初始答案有一些错误。我已经对其进行了更改,并包含了一个工作示例的链接。另外,不要听起来像个刺头,您在那里过度使用?s 并不会激励任何人帮助您...
    • 像沙姆一样工作,你就是明星
    • 你好,还有一个问题。一旦其他卡达到 3 ,我如何停止运行其他卡的翻转效果?换句话说,停止运行插件?提前致谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多