javascript - 如何创建用于模式切换的jquery计数器函数

标签 javascript jquery modal-dialog click counter

我遇到了以下问题,我想创建一个计数器函数来在模态之间切换,以便我可以在多个页面上重复使用该函数,我正在通过互联网努力但找不到解决方案,我尝试了多个选项,但它只通过前 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”。然后使用该类获取按钮,并为每个按钮添加一个单击监听器以隐藏上一个模式并显示下一个模式。

关于javascript - 如何创建用于模式切换的jquery计数器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53328591/

相关文章:

javascript - Google Chrome 中的黑盒模式

javascript - 如何使用 jquery 将整个页面内容包装在一个 div 中

javascript - 如何将日期转换为此(yyyy-MM-ddTHH :mm:ssZ) format

jquery - Flowplayer 位于模态窗口上方

javascript - 如何在 Vuetify 中使用 Dialog 连接表记录

jquery - 如何在窗口中加载图像,仍保留上一页背景

javascript - 手动调用事件时如何使用 event.dataTransfer 设置数据?

javascript - 如何过滤具有保存值javascript的对象数组

javascript - 将 json 条目与 d3 合并

javascript - Javascript 变量求和(实际上是字符串)