6
回答
求! jQuery自动触发事件怎么写?要循环的!
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

求! jQuery自动触发事件怎么写?要循环的!

比如我在首页上 有4个id按钮  Main_Xia_button_1 Main_Xia_button_2 Main_Xia_button_3 Main_Xia_button_4 这样

我想用jQuery实现 自动模拟用户鼠标触碰Main_Xia_button_1.. 间隔300毫秒 Main_Xia_button_2.....间隔300毫秒 这样 

然后到了Main_Xia_button_4之后 在自动转到 Main_Xia_button_1这样 一直循环。。。


请问到底怎么写呢?我需要完整的代码。

举报
DesignStar
发帖于4年前 6回/1K+阅
共有6个答案 最后回答: 4年前

var target = '#button1'; 


function nextClick() { 
  $(target).click();
  var curId = target.charAt(target.length - 1) / 1;
  target = curId < 4 ?  'button' + (curId + 1) : '#button1';
  setTimeout(function(){nextClick();}, 300);
};


nextClick();

--- 共有 1 条评论 ---
DesignStar我把你的代码改了一下 不过没反应 能帮我在看看吗? 我给下面评论了。 4年前 回复

其实我需要的是 不是点击。是触碰
我把你的代码改成这样了。
var target = '#Main_Xia_button_1';  


function nextMouseover() {  
  $(target).mouseover(); 
  var curId = target.charAt(target.length - 1) / 1; 
  if(curId < 4) target = 'Main_Xia_button_1' + (curId + 1); 
  else target = '#Main_Xia_button_1'; 
  setTimeout(function(){nextMouseover();}, 100); 
}; 


不知道什么原因没有效果。。。。

能在帮我看看吗?


var target = '#Main_Xia_button_1';   


function nextMouseover() {   
  $(target).mouseover();  
  var curId = target.charAt(target.length - 1) / 1;  
  if(curId < 4) target = '#Main_Xia_button_1' + (curId + 1);  
  else target = '#Main_Xia_button_1';  
  setTimeout(function(){nextMouseover();}, 100);  
};  


你把问题的本质搞错了.


抽象所有的问题,你会发现解决问题只需要一两句话.

var buttons = [Main_Xia_button_1, Main_Xia_button_2, Main_Xia_button_3, Main_Xia_button_4];

loop(buttons, click);


需要1个loop函数, 1个click函数:

loop负责循环遍历buttons

click负责处理点击


我帮你整了一下,你再测试一下,谢谢:

<script type="text/javascript" src="jquery-2.0.2.min.js"></script>
    <script type="text/javascript">
        var flag = 0;
        function autoClick() {
            if (flag == 0) {
                $("#btn1").click();
            }
            else if (flag == 1) {
                $("#btn2").click();
            }
            else if (flag == 2) {
                $("#btn3").click();
            }
            else if (flag == 3) {
                $("#btn4").click();
            }
        }




        $(function () {
            $("#btn1").click(function () {
                alert("你点了Button1 !");
                flag = 1;
            });
            $("#btn2").click(function () {
                alert("你点了Button2 !");
                flag = 2;
            });
            $("#btn3").click(function () {
                alert("你点了Button3 !");
                flag = 3;
            });
            $("#btn4").click(function () {
                alert("你点了Button4 !");
                flag = 0;
            });
            setInterval("autoClick()", 2000);
        });
    </script>

顶部