一个.单击函数在 jQuery 中不起作用

A .Click function not working in jQuery

本文关键字:不起作用 jQuery 单击 函数 一个      更新时间:2023-09-26

我需要什么:

我需要在单击按钮 1 时出现按钮 2。新东西:我需要做的是将按钮 2 保存在那里,所以如果你刷新或"运行"按钮 2 已经在那里,我将怎么做?

我做过/尝试过什么:

我已经尝试了很多不同的事情,例如围绕更改范围进行更改,以及检查控制台错误,但我没有得到任何结果,所以我不太确定发生了什么。

法典

$(document).ready(function () {
  $('#button2').hide();
  window.highestLevel = 1;
$('#button1').click(function () {
    Check();
    highestLevel = 2;
});
  if (highestLevel == 2) {
    $('#button2').show();
}
function Check() {
    localStorage.setItem('highestLevel', highestLevel);
  }
});

什么有效

唯一有效的是当我单击时,它会将其正确存储到 html 本地存储中$('#button1').

链接js小提琴

为了像您描述的那样工作,if结构...

if (highestLevel == 2) {
    $('#button2').show();
}

。必须在单击功能内。尝试。。。

$('#button1').click(function () {
    Check();
    highestLevel = 2;
    $('#button2').show();
});

你真的不需要 if 结构这样做......在代码中,if 结构仅在文档就绪(一次性(上运行。

你对正在发生的事情有误会。 此代码块在加载文档时运行,而不是在单击 button1 之后运行。

你想把它放在点击功能里

$('#button1').click(function () {
  Check();
  highestLevel = 2;
  if (highestLevel == 2) {
    $('#button2').show();
  }
})

您还需要通过添加事件对象来阻止按钮的默认操作,即发布导致其重新加载的页面

$('#button1').click(function (e) {
  e.preventDefault();
  Check();
  highestLevel = 2;
  if (highestLevel == 2) {
    $('#button2').show();
  }
})

});

你不需要所有这些...问题是

if (highestLevel == 2) {
    $('#button2').show();
}

仅在文档准备就绪时执行一次。

试试这个:

$(document).ready(function () {
  $('#button2').hide();
  $('#button1').click(function () {
     $('#button2').show();
  });
});

试试这个

        window.highestLevel = localStorage.getItem('highestLevel');
        $(document).ready(function () {
            if (highestLevel == 2) {
                $('#button2').show();
                $('#button1').hide();
            }
            else {
                highestLevel == 1
                $('#button1').show();
                $('#button2').hide();
            }
            $('div').click(function () {
                if (highestLevel == 2) {
                     highestLevel = 1;
                    $('#button1').show();
                    $('#button2').hide();
                }
                else{
                    highestLevel = 2;
                    $('#button2').show();
                    $('#button1').hide();
                }
                Check();
            });
        });

        function Check() {
            localStorage.setItem('highestLevel', highestLevel);
        }