clearinterval 似乎没有停止旋转

发布于 2024-10-31 06:39:57 字数 1097 浏览 5 评论 0原文

我的主页上有一个用 jquery 制作的旋转横幅。它使用以下间隔,

    var countBlackButtons = $(".blackitems").size();
    var changeTrigger = 0;
    var changeIndex = 1;
    function startNewChange() {
      clearInterval(changeIndex);
      changeTrigger = setInterval(function () {
        changeIndex = changeIndex + 1;

        if(changeIndex != (countBlackButtons + 1)) {
          $("#hpbutton" + changeIndex).trigger("click");
        } else {
          changeIndex = 0;

        }
        //$("#homepageCaroselHolder").css({ "background": "url( " + eval("itembg" + changeIndex) + ")" });

      }, 4000);

这与我想在有人单击按钮时停止旋转完全不同。我研究了clearinterval,认为这会做我需要它做的事情:

$("#hpbutton1").click(function() {

  currentItem = itembg1;

  itemcount = 1;



  $("#homepageCaroselHolder").fadeOut(function() {

  $("#homepageCaroselHolder").css({ "background": "url(/media/284/jqueryhompepagecaroselbackground.jpg)" });

      $("#homepageCaroselHolder").fadeIn();

  });

  //clear interval



  clearInterval(changeTrigger);



});

但它只是继续旋转......还有什么我可以用来停止旋转吗?

I have a rotating banner on my homepage made in jquery. it uses the following interval

    var countBlackButtons = $(".blackitems").size();
    var changeTrigger = 0;
    var changeIndex = 1;
    function startNewChange() {
      clearInterval(changeIndex);
      changeTrigger = setInterval(function () {
        changeIndex = changeIndex + 1;

        if(changeIndex != (countBlackButtons + 1)) {
          $("#hpbutton" + changeIndex).trigger("click");
        } else {
          changeIndex = 0;

        }
        //$("#homepageCaroselHolder").css({ "background": "url( " + eval("itembg" + changeIndex) + ")" });

      }, 4000);

this is running perfectly apart from i want to stop the rotation when someone clicks a button. i looked into clearinterval and thought this would do what i need it to do:

$("#hpbutton1").click(function() {

  currentItem = itembg1;

  itemcount = 1;



  $("#homepageCaroselHolder").fadeOut(function() {

  $("#homepageCaroselHolder").css({ "background": "url(/media/284/jqueryhompepagecaroselbackground.jpg)" });

      $("#homepageCaroselHolder").fadeIn();

  });

  //clear interval



  clearInterval(changeTrigger);



});

but the it just carries on rotating... is there anything else i could use to stop the rotation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮湿 2024-11-07 06:39:57

这可能是因为如果您多次调用 startNewChange ,您将运行多个间隔,因为 clearInterval(changeIndex); 不会清除任何内容(应该是 清除间隔(changeTrigger);)

It's probably due to the fact that if you call startNewChange multiple times you will have multiple intervals running since clearInterval(changeIndex); doesn't clear anything (should be clearInterval(changeTrigger);)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文