xl_echo編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075)交流學習。 百戰不敗,依不自稱常勝,百敗不頹,依能奮力前行。——這纔是真正的堪稱強大!!html
在使用iview的時候,對於界面效果確實是比較滿意,提供的組件也不少的很全,和element相比,iview更注重視覺和渲染。可是也有一些缺點,好比組件的bug,生態圈的收費問題。這裏只講解page的跳轉bug
能夠看到並無跳轉的按鈕,若是要跳轉的話,必須輸入頁數以後按'enter'鍵,若是不按無法跳轉。對於用戶來講,電腦的操做水平不一,不少人可能沒有enter的意識,這樣就形成了這個功能的雞肋,因此須要修復chrome
<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", }
完成以後,編寫跳轉方法,以下:iview
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組件,那麼這裏只能實現一個page組件的跳轉,若是須要多個page組件都有這個功能,模擬跳轉方法,只須要一個便可,關鍵是要在page組件中添加:id="pageId"
一個page對應一個不一樣的id值,在對應調用方法的地方傳入對應id值接口。學習
好比我點擊跳轉按鈕以後,跳轉到了響應頁面。到了相應頁面以後,不改變當前須要跳轉的頁面值的時候,再次點擊跳轉按鈕,是沒有反應的。this