增量变量为

发布于 2024-08-29 19:00:31 字数 1002 浏览 3 评论 0原文

我在同一页面上有 30 个具有相同类的 div。当我按下标题(.pull)时,内容向上滑动(.toggle_container)。当内容隐藏时,我再次按标题,内容会向下滑动。另外,我想将 div 状态存储在 cookie 中。 我修改了原始代码以将 div 状态存储在 cookie 中,但它不适用于所有 div(pull1、toggle_container1、pull2、toggle_container2 [...]),它仅适用于第一个 div(pull0、toggle_container0)。 我做错了什么?

var increment = 0;
           if ($.cookie('showTop') == 'collapsed') {
               $(".toggle_container" + increment).hide();
            }else {
               $(".toggle_container" + increment).show();
         };
          $("a.pull" + increment).click(function () {
            if ($(".toggle_container" + increment).is(":hidden")) {
               $(".toggle_container" + increment).slideDown("slow");
               $.cookie('showTop', 'expanded');
               increment++;
            } else {
               $(".toggle_container" + increment).slideUp("slow");
               $.cookie('showTop', 'collapsed');
               increment++;
            }
            return false;

          });    

I have 30 divs with the same class on the same page. When i'm pressing the title (.pull) the content is sliding up (.toggle_container). When the content is hidden and i'm pressing the title again, the content is sliding down. Also, i want to store the div state inside a cookie.
I modified my original code to store the div state inside a cookie but it's not working for all the divs (pull1, toggle_container1, pull2, toggle_container2 [...]), it's working only for the first one (pull0, toggle_container0).
What i'm doing wrong?

var increment = 0;
           if ($.cookie('showTop') == 'collapsed') {
               $(".toggle_container" + increment).hide();
            }else {
               $(".toggle_container" + increment).show();
         };
          $("a.pull" + increment).click(function () {
            if ($(".toggle_container" + increment).is(":hidden")) {
               $(".toggle_container" + increment).slideDown("slow");
               $.cookie('showTop', 'expanded');
               increment++;
            } else {
               $(".toggle_container" + increment).slideUp("slow");
               $.cookie('showTop', 'collapsed');
               increment++;
            }
            return false;

          });    

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

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

发布评论

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

评论(2

变身佩奇 2024-09-05 19:00:31

我没有尝试过你的任何代码,
但 $("a.pull" +increment) = $("a.pull0") 不会吗?
我没有看到任何 for 循环,因此增量 0 选择器是唯一会被执行的选择器?

要查看的 jquery 选择器可能是
http://api.jquery.com/attribute-starts-with-selector/< /a>
如果您可以选择具有以 .pull (或其他名称)开头的类的 div,而不必绑定到 30 个不同的 div,那么我认为您的代码将会更加高效。

I haven't tried any of your code,
but won't $("a.pull" + increment) = $("a.pull0") ?
and I don't see any for loop so the increment 0 selector is the only one that will get executed?

a jquery selector to look at might be
http://api.jquery.com/attribute-starts-with-selector/
If you can select divs that have a class that starts with .pull (or whatever) instead of having to bind to 30 different divs then I think your code will be more performant.

独闯女儿国 2024-09-05 19:00:31

这是代码:

$('div.toggle_container').each(function() { // Initialise
        var index = this.id.replace(/^\D+/, '');
              $(this).toggle($.cookie('showTop' + index) == 'collapsed');
            });

    $('a.pull').click(function() { //Activate                  
        var index = this.id.replace(/^\D+/, '');
        if ($.cookie('showTop' + index) == 'collapsed') {
        var container = $('#toggle_container' + index).slideDown('slow');
        $.cookie('showTop' + index, container.is(':hidden') ? 'collapsed' : 'expanded');
        }else {
        var container = $('#toggle_container' + index).slideUp('slow');
        $.cookie('showTop' + index, container.is(':visible') ? 'expanded' : 'collapsed');
            }
});

This is the code:

$('div.toggle_container').each(function() { // Initialise
        var index = this.id.replace(/^\D+/, '');
              $(this).toggle($.cookie('showTop' + index) == 'collapsed');
            });

    $('a.pull').click(function() { //Activate                  
        var index = this.id.replace(/^\D+/, '');
        if ($.cookie('showTop' + index) == 'collapsed') {
        var container = $('#toggle_container' + index).slideDown('slow');
        $.cookie('showTop' + index, container.is(':hidden') ? 'collapsed' : 'expanded');
        }else {
        var container = $('#toggle_container' + index).slideUp('slow');
        $.cookie('showTop' + index, container.is(':visible') ? 'expanded' : 'collapsed');
            }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文