director.js 路由
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>director.js</title> <style type="text/css"> .test {width: 100px;height: 100px;} span {cursor: pointer;} </style> </head> <body> <ul> <li><a href="#/author">#/author</a></li> <li><a href="#/books">#/books</a></li> <li><span href="#/books/view/1_1">#/books/view/1</span></li> <li><span href="#/books/view/2_2">#/books/view/2</span></li> <li><span href="#/books/view/3_3">#/books/view/3</span></li> <li><a href="https://www.baidu.com/?tn=47018152_dg">百度</a></li> <div class="test"></div> </ul> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script> <script src="https://cdn.bootcss.com/Director/1.2.8/director.js"></script> <script> var author = function () { //console.log("author"); $('.test').css({background:'green'}); }; var books = function () { //console.log("books"); $('.test').css({background:'pink'}); }; var viewBook = function (bookId) { //console.log("viewBook: bookId is populated: " + bookId); var id = bookId.split('_')[0]; var tid = bookId.split('_')[1]; if (id == 1) { $('.test').css({background:'gold'}); console.log(tid); } else if (id == 2) { $('.test').css({background:'#dddddd'}); console.log(tid); } else if (id == 3) { $('.test').css({background:'blue'}); console.log(tid); } }; $('span').on('click', function() { var temp = location.href.split('#')[0]; location.href = temp + $(this).attr('href'); }); var routes = { '/author': author, '/books': [books, function() { console.log("An inline route handler."); }], '/books/view/:bookId': viewBook }; var router = Router(routes); router.init(); </script> </body> </html>
通过js控制跳转:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>A Gentle Introduction</title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/Director/1.2.8/director.min.js"></script>
<script>
$('document').ready(function() {
//
// create some functions to be executed when
// the correct route is issued by the user.
//
var showAuthorInfo = function () { console.log("showAuthorInfo"); };
var listBooks = function () { console.log("listBooks"); };
var allroutes = function() {
var route = window.location.hash.slice(2);
var sections = $('section');
var section;
section = sections.filter('[data-route=' + route + ']');
if (section.length) {
sections.hide(250);
section.show(250);
}
};
//
// define the routing table.
//
var routes = {
'/author': showAuthorInfo,
'/books': listBooks
};
//
// instantiate the router.
//
var router = Router(routes);
//
// a global configuration setting.
//
router.configure({
on: allroutes
});
router.init();
$('#m-author').on('click', function () {
window.location = '#/author';
});
$('#m-books').on('click', function () {
window.location = '#/books';
});
});
</script>
</head>
<body>
<section data-route="author">Author Name</section>
<section data-route="books">Book1, Book2, Book3</section>
<ul>
<li><a href="javascript:;" id="m-author">author</a></li>
<li><a href="javascript:;" id="m-books">books</a></li>
</ul>
</body>
</html>