<script>
????var?data?={/json_encode($mapdata)/}?||"";
????var?$findFilterData?=?$("#find-filter-data");
????$findFilterData.on({
????????keyup:?function?(e)?{
????????????fnFindFilterData(e);
????????},
????????blur:?function?(e)?{
????????????fnFindFilterData(e);
????????}
????});
????
????//?根據(jù)當(dāng)前頁數(shù)分割數(shù)據(jù)并渲染
????//?data:全部數(shù)據(jù),?currentPage:當(dāng)前所在頁數(shù)
????function?sliceDataByPage(data,?currentPage)?{
????????data?=?data.slice((currentPage?-?1)?*?pageSize,?currentPage?*?pageSize);
????????return?data;
????}
????//生成即時(shí)過濾數(shù)據(jù)對應(yīng)的HTML片段
????function?renderFilterHtml(data)?{
????????if?(data?&&?data.length?>?0)?{
????????????var?listHtml?=?"";
????????????for?(var?i?=?0;?i?<?data.length;?i++)?{
????????????????var?index?=?i?+?1,?liHtml?=?"<tr>";
????????????????var?viewurl="/tool/MapData?type=view&mapkey="+data[i].map_key;
????????????????var?editurl="/tool/MapData?type=edit&mapkey="+data[i].map_key;
????????????????liHtml?+=?"<td>"?+?index?+?"</td><td>"?+?data[i].map_name?+?"</td><td>"?+?data[i].map_key?+?"</td><td>"?+?data[i].creater?+?"</td><td>"?+?data[i].updater?+?"</td><td><a??href='"+viewurl+"'?class='btn?btn-default?btn-sm?button-oprtation'>查看</a><a?href='"+editurl+"'?class='btn?btn-default?btn-sm?button-oprtation'>編輯</a></td>"
????????????????liHtml?+=?"</tr>";
????????????????listHtml?+=?liHtml;
????????????}
????????}?else?{
????????????listHtml?=?"<tr><td?colspan='6'?style='text-align:?center'>沒有數(shù)據(jù)</td></tr>";
????????}
????????$(".table-list").find(".item-list").html(listHtml);
????}
????//?根據(jù)輸入的mapkey查詢數(shù)據(jù)
????function?fnFindFilterData(e)?{
????????var?inf?=?$(e.target).val()?||?"";
????????var?totalPageNumFind?=?1,?currentPageFind?=?1;?//?查詢結(jié)果的總頁數(shù),當(dāng)前在查詢結(jié)果的第幾頁
????????var?resultInf?=?[],?resultInfHandle?=?[];?//?查詢結(jié)果
????????$(".pagination").html("");
????????if?(inf?&&?inf.length?>?0)?{
????????????for?(var?i?=?0;?i?<?data.length;?i++)?{
????????????????if?(data[i].map_key.indexOf(inf)?>?-1)?{
????????????????????resultInf.push(data[i]);
????????????????}
????????????}
????????}
????????totalPageNumFind?=?Math.ceil(resultInf.length?/?pageSize)?||?1;?//?總頁數(shù)
????????if?(totalPageNumFind?>?1)?{
????????????resultInfHandle?=?sliceDataByPage(resultInf,?currentPageFind);
????????????publicOperation(resultInf,?currentPageFind,?totalPageNumFind,?resultInfHandle);
????????}?else?{
????????????renderFilterHtml(resultInf);
????????????bindEventHandle(resultInf,?totalPageNumFind);
????????}
????}
????function?bindEventHandle(resultInf,?totalPageNumFind)?{
????????$(".page-num-first").on('click',?function?()?{
????????????var?currentPage?=?1;
????????????var?resultInfHandle?=?sliceDataByPage(resultInf,?currentPage);
????????????publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle);
????????});
????????$(".page-num-last").on('click',?function?()?{
????????????var?currentPage?=?totalPageNumFind;
????????????var?resultInfHandle?=?sliceDataByPage(resultInf,?currentPage);
????????????publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle);
????????});
????????$(".page-num-prev").on('click',?function?()?{
????????????var?currentPage?=?parseInt($("#currentNumSelected").text())?||?1;
????????????currentPage?=?currentPage?-?1;
????????????if?(currentPage?<?1)?{
????????????????currentPage?=?1;
????????????}
????????????var?resultInfHandle?=?sliceDataByPage(resultInf,?currentPage);
????????????publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle);
????????});
????????$(".page-num-next").on('click',?function?()?{
????????????var?currentPage?=?parseInt($("#currentNumSelected").text())?||?1;
????????????currentPage?=?currentPage?+?1;
????????????if?(currentPage?>?totalPageNumFind)?{
????????????????currentPage?=?totalPageNumFind
????????????}
????????????var?resultInfHandle?=?sliceDataByPage(resultInf,?currentPage);
????????????publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle);
????????});
????????$(".page-num").on('click',?function?(event)?{
????????????var?currentPage?=?parseInt($(event.target).text())?||?1;
????????????var?resultInfHandle?=?sliceDataByPage(resultInf,?currentPage);
????????????publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle);
????????})
????}
????function?publicOperation(resultInf,?currentPage,?totalPageNumFind,?resultInfHandle)?{
????????renderPaginationWithFind(currentPage,?totalPageNumFind);
????????renderFilterHtml(resultInfHandle);
????????bindEventHandle(resultInf,?totalPageNumFind);
????}
????//?對搜索結(jié)果內(nèi)容進(jìn)行分頁,和普通的分頁略有不同。之后會將兩者合二為一
????function?renderPaginationWithFind(currentPage,?totalNum)?{
????????var?currentPage?=?currentPage?||?1,?totalNum?=?totalNum,?ulHtml?=?"",?currentPageSelected;
????????$(".pagination").html(ulHtml);
????????ulHtml?+=?'<li><a?class="first-page?page-num-first">第一頁</a></li><li><a?class="prev-page?page-num-prev">上一頁</a></li>';
????????for?(var?i?=?0;?i?<?totalNum;?i++)?{
????????????var?currentNum?=?i?+?1;
????????????if?(currentPage?==?currentNum)?{
????????????????currentPageSelected?=?"current-page-selected";
????????????}?else?{
????????????????currentPageSelected?=?"";
????????????}
????????????ulHtml?+=?'<li><a?class="page-num"?id="'?+?currentPageSelected?+?'">'?+?currentNum?+?'</a></li>';
????????}
????????ulHtml?+=?'<li><a?class="next-page?page-num-next">下一頁</a></li><li><a?class="last-page?page-num-last">最后一頁</a></li>';
????????$(".pagination").html(ulHtml);
????????if?(currentPage?==?1)?{
????????????$(".page-num-prev").addClass("btn-not-allowed");
????????????$(".page-num-first").addClass("btn-not-allowed");
????????}
????????if?(currentPage?==?totalNum)?{
????????????$(".page-num-next").addClass("btn-not-allowed");
????????????$(".page-num-last").addClass("btn-not-allowed");
????????}
????}
</script>由于字?jǐn)?shù)限制,只貼了最重要的部分,根據(jù)搜索框的內(nèi)容查詢并渲染html,第一次點(diǎn)擊<a href="xxxx.html>查看</a> 或<a href="xxx.html">編輯</a> 頁面不跳轉(zhuǎn) ,只要在搜索框輸入完畢,并點(diǎn)擊頁面任意地方,再點(diǎn)擊a標(biāo)簽,頁面才跳轉(zhuǎn),這是為什么呢?有試著對a添加click,第一次點(diǎn)擊,不執(zhí)行,點(diǎn)擊第二次,根據(jù)輸出顯示已經(jīng)是執(zhí)行第二次了,同樣在在搜索框輸入完畢,并點(diǎn)擊頁面任意地方,再點(diǎn)擊a標(biāo)簽就能跳轉(zhuǎn)。最后,當(dāng)注釋掉以下代碼后,就一切正常了 ,blur:?function?(e)?{
????fnFindFilterData(e);
}
第一次點(diǎn)擊<a href="xxx">無反應(yīng),點(diǎn)擊第二次才跳轉(zhuǎn)是什么原因呢
又一個(gè)老白
2016-11-15 18:18:17