zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JQuery的show方法执行调用以后,会秒退,并且返回上一个状态

jQuery方法状态执行 一个 调用 返回 并且
2023-09-11 14:19:18 时间

解决JQuery中show方法的问题

在做一个项目时候,发现了一个关于show方法的一个小BUG,我通过一个函数goPage(val) 进行判断校验用户去使用哪一个按钮,在走流程的时候出现了一个问题,就是当我点击控制display的状态时候,发现执行了show()方法,但是实现会回显到上一个页面的状态。
请添加图片描述

html代码片段:

<div class="dj">
	<button onclick="goPage(0)">修改企业信息</button>
	<button onclick="goPage(1)">新增企业信息</button>
</div>
<div class="dj add" style="display: none;">
	...
</div>
<div class="dj add" style="display: none;">
	...
</div>

js代码片段:

function goPage(val) {
     if(val == 0) {
         $('.dj').hide();
         $('.edit').show();
         console.log('我出来了1111')
     } else {
         $('.dj').hide();
         $('.add').show();
         console.log('我出来了2222')
     }
 }

上述的出现了问题,当控制台打印到console.log('我出来了1111')console.log('我出来了2222')后不会在停留而是返回到上一个页面的状态,做了一些尝试,比如原生js控制css还是不行。

我目前使用解决方案

通过preventDefault()方法去解决这个问题。这是我的解决方案,该方法作用:如果事件是可取消的,则 preventDefault() 方法会取消该事件,这意味着属于该事件的默认操作将不会发生。这个方法可能是最蠢的方法了,但是没办法,我就只能这样搞出来。

最后的代码js代码片段:

function goPage(val) {
     if(val == 0) {
          $('.dj').hide();
          $('.edit').show();
          console.log('我出来了1111')
          event.preventDefault();
      } else {
          $('.dj').hide();
          $('.add').show();
          console.log('我出来了2222')
          event.preventDefault();
      }
  }