iview中page组件的跳转功能BUG解决方案

news/2024/7/9 23:40:47 标签: vue, iview, page, 跳转, bug

xl_echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!


在使用iview的时候,对于界面效果确实是比较满意,提供的组件也很多的很全,和element相比,iview更注重视觉和渲染。但是也有一些缺点,比如组件的bug,生态圈的收费问题。这里只讲解page跳转bug

iviewpage_6">iviewpage最初的跳转功能样子如下

<a class=page" />

可以看到并没有跳转的按钮,如果要跳转的话,必须输入页数之后按’enter’键,如果不按没法跳转。对于用户来说,电脑的操作水平不一,很多人可能没有enter的意识,这样就造成了这个功能的鸡肋,所以需要修复

修复最终的界面跳过如下

<a class=page" />

跳转按钮是我们手动加上去的一个按钮

<Page
  :id="pageId"
  :total="total"
  :current="page"
  @on-change="changePage"
  @on-page-size-change="changesPages"
  show-sizer
  show-elevator
>
</Page>
<div style="float: left;margin-right: 10px;margin-top: 12px">
  <Button type="primary" size="small" @click="goElevatorPage(pageId)">跳转</Button>
</div>

加上按钮之后我们并没有实现功能,只是看起来比较像而已。

模拟点击跳转

编写点击跳转方法之前要现在page组件中添加:id="pageId",并在return当中定义对应pageId的值。我这里定义如下:

return {
    pageId: "targetpage",
}

完成之后,编写跳转方法,如下:

goElevatorPage:function(pageId){
  var evtObj;
  var thisPage=document.getElementById(pageId);
  var elevatorDiv=thisPage.getElementsByClassName("ivu-page-options-elevator");
  if(elevatorDiv && elevatorDiv.length>0){
      var pageInput = elevatorDiv[0].getElementsByTagName("input")[0];
      if (window.KeyEvent) {//firefox 浏览器下模拟事件
          evtObj = document.createEvent('KeyEvents');
          evtObj.initKeyEvent("keyup", true, true, window, true, false, false, false, 13, 0);
      } else {//chrome 浏览器下模拟事件
          evtObj = document.createEvent('UIEvents');
          evtObj.initUIEvent("keyup", true, true, window, 1);
          delete evtObj.keyCode;
          if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode
              Object.defineProperty(evtObj, "keyCode", { value: 13 });
          } else {
              evtObj.key = String.fromCharCode(13);
          }
      }
      pageInput.dispatchEvent(evtObj);
  }
}

page_66">多page组件同一页面

如果在这个页面中间有很多个page组件,那么这里只能实现一个page组件的跳转,如果需要多个page组件都有这个功能,模拟跳转方法,只需要一个即可,关键是要在page组件中添加:id="pageId"一个page对应一个不同的id值,在对应调用方法的地方传入对应id值接口。

目前没有解决的疑问

比如我点击跳转按钮之后,跳转到了响应页面。到了相应页面之后,不改变当前需要跳转的页面值的时候,再次点击跳转按钮,是没有反应的。


http://www.niftyadmin.cn/n/1639163.html

相关文章

[javascript]首页图片自动切换的一种实现方式

大家看看淘宝的首页&#xff0c;中间位置的图片自动切换功能&#xff0c;鼠标移动到页码上可以切换到当前号码的图片&#xff0c;其实是先起来很简单 <div style"float:top;width:200px;height:200px;"> <div style"position:absolute;z-index:1"…

GoLang之Redis操作体验

安装 我使用的是 https://github.com/go-redis/r... 这个 golang 客户端, 因此安装方式如下: go get gopkg.in/redis.v4 接着在代码中导入此包即可: import "gopkg.in/redis.v4" 基本操作 创建客户端 通过 redis.NewClient 函数即可创建一个 redis 客户端, 这…

[urlrewrite]使用urlrewrite进行地址自动重定向

一般通过url访问网站&#xff0c;url的格式都是 http://xxx.xxx.com?paramp1&paramp2 这是最传统的访问方式&#xff0c;但是&#xff0c;对于一些具有特殊要求的系统&#xff0c;其所有的页面的地址并不一定是这样子的格式&#xff0c;或者是类似于struts风格的.do的方式…

SpringBoot线程池

前言 前两天做项目的时候&#xff0c;想提高一下插入表的性能优化&#xff0c;因为是两张表&#xff0c;先插旧的表&#xff0c;紧接着插新的表&#xff0c;一万多条数据就有点慢了 后面就想到了线程池ThreadPoolExecutor&#xff0c;而用的是Spring Boot项目&#xff0c;可以…

[web] 给自己的网站增加转载功能

现在很多网站都具有一键转载功能&#xff0c;十分方便&#xff0c;如果你也想给自己的网站增加这个功能&#xff0c;其实很简单。 <div class"yhq-fx"><a href"javascript:void(0);" mce_href"javascript:void(0);" class"s-fc1 f…

Californium 开源框架分析

引言 物联网时代&#xff0c;所有设备都可以接入我们的互联网。想想看只要有一台智能手机&#xff0c;就可以操控所有的设备&#xff0c;也可以获取到所有设备采集的信息。不过&#xff0c;并不是所有设备都支持HTTP协议的&#xff0c;而且让设备支持HTTP协议也不现实&#xf…

[ORACLE] ORA-01555的异常分析 ,都是大事务惹的祸

ORA-01555 是一个很常见的异常&#xff0c;尤其是对于数据量比较大的系统而言&#xff0c;从字面的意思来看&#xff0c;是快照过旧错误&#xff0c;所谓的快照是什么意思呢&#xff1f; 我们知道oracle实现事务是通过一个特殊的区域名字叫“回滚段”来完成&#xff0c;当一个事…

时序数据库(TSDB)

用搜索引擎搜索下 “tsdb”或者 “时序数据库”&#xff0c;你可以看到各种开源的时序数据库&#xff0c;我没有对各种开源时序数据库进行过详细对比&#xff0c;只是大致上看了下别人的评论。从评论来看InfluxDB应该是目前综合性能最好的&#xff0c;但是它的集群版是闭源的商…