第二次点击稍微改变功能

时间:2013-12-12 09:28:40

标签: jquery

我正在研究某种老虎机,我已设法在一组特定的数字上设置结果。当我第二次单击旋转机器时,我希望使用不同的endnumbers集来实现相同的功能,但我不太了解Jquery语法以实现这一点。

这是一个Jfiddle:http://jsfiddle.net/d3fZV/(注意:代码属于Matthew Lein)

现在问题就出现了,下面这段代码完美无缺(在我的HTML文件中):

<script type="text/javascript" charset="utf-8">  

    $('.slot').jSlots({  
        spinner: '#playBtn',
        winnerNumber: 7,
        endNumbers: [1, 2, 3]
    }); 
</script>

我想我可以使用这个问题的答案:Jquery, adding new function to the second click给我留下这段代码:

$('.slot').click(function(){
  if( $(this).hasClass("clicked"))
  {
     $('.slot').jSlots({  
        spinner: '#playBtn',
        winnerNumber: 7,
        endNumbers: [3, 2, 1]; // non-first click effect
  }
  else
  {
     $(this).addClass("clicked");
     $('.slot').jSlots({  
        spinner: '#playBtn',
        winnerNumber: 7,
        endNumbers: [1, 2, 3]; //first click effect
  }
});

这当然会使我的整个函数无法使用,而且我很确定我只是弄乱了这里的语法。请帮帮我。谢谢。我特别感到困惑的是在某些行的末尾使用了逗号和分号。

编辑:错字

2 个答案:

答案 0 :(得分:2)

我更新了你的小提琴并稍微修改了jQuery代码,因此它支持更改现有jsSlot的选项。

该按钮现在计算变量clickCount中的点击次数。此外,$('.someSelector').jSlots()现在将jsSlots对象作为数组返回 因此,您可以通过以下代码随时更改这些对象的选项:

var jsSlot = $('.slot').jSlots({
                spinner: '#playBtn',
                winnerNumber: 7,
                endNumbers: [1, 4, 3]
            })[0];

jsSlots.options.endNumbers = [5 , 2, 2];

您可以在此处找到更新的小提琴: http://jsfiddle.net/d3fZV/435/

我还将第二次点击的结束号码更改为小提琴中的[1, 4, 6]以进行演示

答案 1 :(得分:0)

$('.slot').jSlots({  
    spinner: '#playBtn',
    winnerNumber: 7,
    endNumbers: [1, 2, 3];

应该是

$('.slot').jSlots({  
    spinner: '#playBtn',
    winnerNumber: 7,
    endNumbers: [1, 2, 3] });

参数应为object类型,并且您希望传递object literal

此外,您的代码将在每次点击时触发else子句,但第一次点击,因为您在第二次点击时添加了该类,然后在每次点击时查找它。

要计算每次点击,您可以执行以下操作:

$(document).click(function(){

    var prev = $(this).data('c');
    $(this).data({ c: !prev ? 1 : ++prev });

    var count = $(this).data('c');
    console.log(count);
});

http://jsfiddle.net/7GHJ7/