你每次用jQuery单击相同的按钮时都可以加载一个随机文件吗?

时间:2010-12-02 17:00:10

标签: jquery

我有4个联系表格,我们想轮流进行测试。我不想在单独的广告系列中运行这些广告,并且这样一个简单的事情就是它的过度杀伤力。是否有可能有一组说4种形式并且每次单击按钮时随机加载(不同的形式)?

$(function() {
    $("a.random")click.(function){
    //?
    });
});

5 个答案:

答案 0 :(得分:3)

var n = Math.floor( Math.random() * 4 ) + 1;

这将为您提供1到4之间的随机整数。基于此,您可以运行不同的命令。

答案 1 :(得分:3)

<form id="form0" class="test_form">
<form id="form1" class="test_form" style="display: none;">
<form id="form2" class="test_form" style="display: none;">
<form id="form3" class="test_form" style="display: none;">

$(function() {
    $("a.random")click.(function){
       $(".test_form").hide();
       var formNumber = Math.floor(Math.random() * 4);//will equal a number between 0 and 3
       $("#form" + formNumber).show();
    });
});

答案 2 :(得分:1)

您可以使用以下格式:

<div id="forms">
  <form style="display:none;" ...>
    ...
  </form>
  <form style="display:none;" ...><!-- the second form -->
    ...
  </form>
  ...
</div>
<a href="#" id="randomForm">Show random form</a>

然后在你的jQuery中:

$('#randomForm').click(function() {
    var forms = $('#forms > form');
    forms.hide();
    forms.eq(Math.floor(Math.random() * forms.length)).show();
});

看看它有效here

答案 3 :(得分:0)

这很冗长但是这样的事情应该有效:

$(function() {
    $("a.random")click.(function){
        var randomnumber=Math.floor(Math.random()*5)
        switch (randomnumber) {
          case 1:
           $(this).attr("href",[url 1]);
           break;
          case 2:
           $(this).attr("href",[url 2]);
           break;
          case 3:
           $(this).attr("href",[url 3]);
           break;
          default:
           $(this).attr("href",[url 4]);
           break;
        }
    });
});

答案 4 :(得分:0)

我们可以在这里使用纯粹的javascript和dom,看看它是否适合你。

var arr = [form1, form2, form3, form4];

var fn = function(arr){
  var cur_frm = arr[Math.floor(Math.random() * arr.length)];
  cur_frm.style.display = 'block';

  for(i=0; i<arr.length;i++){
    if(arr[i] != cur_frm) arr[i].style.display = 'none';
  }

}