ajax hash调用实例
生活随笔
收集整理的這篇文章主要介紹了
ajax hash调用实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
$('[com-view]').on('click', function (e) {// render($(this).data('view'));// hashRoute.render($(this).data('view'));view.render($(this).data('view'));})// 路由var HashRoute = function HashRoute(params) {var _self = this;this.init = function () {window.addEventListener('DOMContentLoaded', function () {console.log('DOMContentLoaded');})$(document).ready(_self.setRoute);// 1.直接更改瀏覽器地址,在最后面增加或改變#hash; // 2.通過改變location.href 或 location.hash的值; // 3.通過觸發(fā)點擊帶錨點的鏈接; // 4.瀏覽器前進后退可能導(dǎo)致hash的變化,前提是兩個網(wǎng)頁地址中的hash值不同window.addEventListener('hashchange', _self.setRoute)}this.setRoute = function () {var route = layui.router();// layer.msg('只想弱弱提示<br>' + location.href);// console.log(route.href);if(route.href != undefined) {route.href = route.href.substr(route.href.length - 1, 1) == '/' ? route.href + setter.entry : route.href;}ajaxModel.ajaxMethod({url: setter.views + (route.href ? route.href : setter.entry) + setter.engine,dataType: 'html',successfn: function (e) {$('.layadmin-tabsbody-item.layui-show').html(e);},errorfn: function (e) {// e.status === 404 ? _self.render('tips/404') : _self.render('tips/error');}})}this.skip = function (path) {location.hash = '#/${path}'}this.render = function (u) {location.hash = _self.correctRouter(u);}this.correctRouter = function (e) {return /^\//.test(e) || (e = "/" + e),e.replace(/^(\/+)/, "/").replace(new RegExp("/" + setter.entry + "$"), "/");}};// const hashRoute = new HashRoute()// hashRoute.init();
參考
// 該寫法為了滿足多條件下的 CommonJs,Node.js, window,layui(function (name, factory) {// 檢測上下文是否為AMD或者CMDvar hasDefine = typeof define === "function",// 檢查上下文環(huán)境是否為NodehasExports = typeof module !== 'undefined' && module.exports,hasLayui = this.layui && layui.define;if (hasDefine) {// AMD 環(huán)境或者 CMD環(huán)境define(factory);} else if (hasExports) {// 定義為普通的Node模塊module.exports = factory();} else if (hasLayui) {layui.define(['jquery', 'ajaxModel', 'setter'], function (exports) {exports('view', factory());});} else {// window對象this[name] = factory();} })('view', function () {"use strict";var $ = layui.jquery,setter = layui.setter,ajaxModel = layui.ajaxModel;var _self = null;var View = function View(params) {_self = this;};View.prototype.init = function () {window.addEventListener('DOMContentLoaded', function () {console.log('DOMContentLoaded');})$(document).ready(_self.setRoute);// 1.直接更改瀏覽器地址,在最后面增加或改變#hash; // 2.通過改變location.href 或 location.hash的值; // 3.通過觸發(fā)點擊帶錨點的鏈接; // 4.瀏覽器前進后退可能導(dǎo)致hash的變化,前提是兩個網(wǎng)頁地址中的hash值不同window.addEventListener('hashchange', _self.setRoute)}View.prototype.setRoute = function () {var route = layui.router();// layer.msg('只想弱弱提示<br>' + location.href);// console.log(route.href);if (route.href != undefined) {route.href = route.href.substr(route.href.length - 1, 1) == '/' ? route.href + setter.entry : route.href;}ajaxModel.ajaxMethod({url: setter.views + (route.href ? route.href : setter.entry) + setter.engine,dataType: 'html',successfn: function (e) {$('.layadmin-tabsbody-item.layui-show').html(e);},errorfn: function (e) {// e.status === 404 ? _self.render('tips/404') : _self.render('tips/error');}})}View.prototype.skip = function (path) {location.hash = '#/${path}'}View.prototype.render = function (u) {location.hash = _self.correctRouter(u);}View.prototype.correctRouter = function (e) {return /^\//.test(e) || (e = "/" + e),e.replace(/^(\/+)/, "/").replace(new RegExp("/" + setter.entry + "$"), "/");}return new View(); // 返回構(gòu)造});轉(zhuǎn)載于:https://www.cnblogs.com/snmic/p/10400421.html
總結(jié)
以上是生活随笔為你收集整理的ajax hash调用实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2. Add Two Numbers(L
- 下一篇: 微服务实战:从架构到发布(二)