如何为模态切换创建一个 jquery 计数器函数

how to create a jquery counter function for modal switching

我遇到了以下问题,我想创建一个计数器函数来在模态之间切换,这样我就可以在多个页面上重复使用该函数,我在互联网上苦苦挣扎,但找不到解决方案,我尝试了多个选项,但它只切换了前 2 个模态,而且当我检查日志时,我的计数器变量没有超过 1(第一次点击)。

我从这个开始

        var counter = 0; 
        var step = 1;
        var prev = 0;   

        $( document ).ready(function() {

            $('.button-'+counter).click(function() {
                    counter++;   
                    prev = counter - step;

                    $('.window-'+prev).modal('hide');
                    $('.window-'+counter).modal('show');
                    console.debug(counter, prev);

            });


            //$('.modal-header > .close').click(function() {
            //    counter = 0;
            //});

        });

然后经过一些研究,我最终得到了这个,但它做的事情完全一样

    var counter = 0; 
    var step = 1;
    var prev = 0;   

    $( document ).ready(function() {  
        $('#addproductnext').each(function() {
            $(this).on('click', function() {
                counter++;   
                prev = counter - step;
                console.log(counter, prev);
                if($('#addproductwindow').hasClass('window-'+prev)) {
                $('.window-'+prev).modal('hide');
                $('.window-'+counter).modal('show');

                };
        });
    });

这是我目前的快速修复,但我认为它不完美

$( document ).ready(function() {  
    $('.button-0').click(function() {
        $('.window-0').modal('hide');
        $('.window-1').modal('show');
    });
     $('.button-1').click(function() {
        $('.window-1').modal('hide');
        $('.window-2').modal('show');
    });

     $('.button-2').click(function() {
        $('.window-2').modal('hide');
        $('.window-3').modal('show');  
    });

    $('.button-3').click(function() {
        $('.window-3').modal('hide');
        $('.window-4').modal('show');  
    });


//$('.modal-header > .close').click(function() {
//    counter = 0;
//});

});

这是我的 html 的样子(php 函数)

<div class="modal fade window-' . $number . '" id="' . $name . '" tabindex="-1" role="dialog" aria-labelledby="' . $name . '" aria-hidden="true" data-backdrop="' . $backdrop . '">
        <div class="modal-dialog ' . $class . '" role="document">
          <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="deletemessage">' . $header .'</strong></h5>
              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">
BODY
    </div>
   </div>
  </div>
 </div>
<button class="button-modal">Button 1</button>
<button class="button-modal">Button 2</button>
<button class="button-modal">Button 3</button>

<script>
var counter = 0; 
var step = 1;
var prev = 0;   

$(document).ready(function() {
    $('.button-modal').each(function() {
        counter++;
        prev = counter - step;
        $(this).on('click', function() {
            $('.window-'+prev).modal('hide');
            $('.window-'+counter).modal('show');
        };
    });
});
</script>

为按钮提供与 'button-modal' 相同的 class。然后使用 class 获取按钮并为每个按钮添加一个点击侦听器以隐藏您之前的模态并显示您的下一个模态。