Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次使用jQuery单击同一按钮时,是否可以加载随机文件?_Jquery - Fatal编程技术网

每次使用jQuery单击同一按钮时,是否可以加载随机文件?

每次使用jQuery单击同一按钮时,是否可以加载随机文件?,jquery,Jquery,我有4个联系方式,我们想轮流测试。我不想在单独的活动中运行这些,对于这样一件简单的事情来说,它是过度的。是否有可能在每次单击按钮时,将一组表单(例如4个表单)随机加载(不同的表单) $(function() { $("a.random")click.(function){ //? }); }); 这将为您提供一个介于1和4之间的随机整数。基于此,您可以运行不同的命令。这是冗长的,但类似这样的命令应该可以工作: $(function() { $("a.random

我有4个联系方式,我们想轮流测试。我不想在单独的活动中运行这些,对于这样一件简单的事情来说,它是过度的。是否有可能在每次单击按钮时,将一组表单(例如4个表单)随机加载(不同的表单)

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

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

这是冗长的,但类似这样的命令应该可以工作:

$(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;
        }
    });
});


您可以使用以下格式:

<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>

看看它在工作。

我们可以在这里使用纯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';
  }

}
var arr=[form1,form2,form3,form4];
var fn=功能(arr){
var cur_frm=arr[Math.floor(Math.random()*arr.length)];
cur_frm.style.display='block';

对于(i=0;i
$(this).attr(…)
无需为每个选项复制粘贴此表达式。同样错误:
randomnumber
将是一个从0到4的数字,因此您的
默认情况下运行的概率更大。您可以轻松地执行
var-url=['url1'、'url2'、'url3'、'url4'];
然后
$(此).attr(“href”,url[Math.floor(Math.random()*url.length)];
。现在它甚至不限于4!哎哟。应该在发布之前运行此功能…将此称为“我今天的代码回顾”并移动on@Adam我认为你不会从集合{0,1,2,3}中得到数字@Sime,Adam,非常酷。这是可能的。下面是下一个问题,它加载在jQuery工具覆盖中,我会为href创建一个var吗?或者这会使事情变得太复杂吗?@Adam还有,我不认为使用round()会给你带来随机性。零或三的几率小于一或二的几率。(准确地说,是原来的两倍)@Dirty Bird Design,我不熟悉jQuery工具,你必须询问其他人@Šime Vidas-我从来没有意识到,你当然是对的。我已经看过很多使用round的代码,但使用floor肯定更有意义。谢谢!请参阅Sime和Adam的评论,是否可以将其作为var添加到a href?我需要将其添加到a href中上班overlay@Dirty:我不知道jQuery工具覆盖是什么..最好单独问一个问题
$(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();
    });
});
<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>
$('#randomForm').click(function() {
    var forms = $('#forms > form');
    forms.hide();
    forms.eq(Math.floor(Math.random() * forms.length)).show();
});
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';
  }

}