javascript - 如何在外部點擊,跳轉到網頁后,顯示指定的模塊。
問題描述
比如外部別的頁面有幾個鏈接:a b c d e然后點擊后的跳轉詳情頁面里,abcde五個模塊都在這一個頁面里,默認顯示第一個a,其他都是display:none;
能否在外部頁面點擊b鏈接的時候,跳轉過來到詳情頁,直接顯示b內容,除了b內容外其他內容都是display:none,在外部頁面點擊c鏈接的時候,跳轉過來到詳情頁,直接顯示c內容,除了c內容外其他內容都是display:none,
外部頁面:
<a href='http://www.aoyou183.cn/wenda/1.html'>a</a><a href='http://www.aoyou183.cn/wenda/1.html'>b</a><a href='http://www.aoyou183.cn/wenda/1.html'>c</a><a href='http://www.aoyou183.cn/wenda/1.html'>d</a><a href='http://www.aoyou183.cn/wenda/1.html'>e</a>
跳轉后1.html的頁面:
<ul class='uls'> <li class='uls_li_checked'>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li></ul><p class='con'> <p>a的內容</p> <p style='display:none;'>b的內容</p> <p style='display:none;'>c的內容</p> <p style='display:none;'>d的內容</p> <p style='display:none;'>e的內容</p></p><script> $(’.uls li’).on(’click’,function(){var aIndex = $(this).index();$(’.con p’).css({’display’:’none’});$(’.con’).eq(aIndex).css({’display’:’block’}); })</script>
問題解答
回答1:在五個鏈接中都加入一個參數,例如
<a href='http://www.aoyou183.cn/wenda/1.html#a'>a</a><a href='http://www.aoyou183.cn/wenda/1.html#b'>b</a><a href='http://www.aoyou183.cn/wenda/1.html#c'>c</a><a href='http://www.aoyou183.cn/wenda/1.html#d'>d</a><a href='http://www.aoyou183.cn/wenda/1.html#e'>e</a>
然后在這個頁面的 js 里面判斷 url 后面的參數,來決定哪個顯示哪個隱藏。window.location.hash 能夠獲取到 url 的參數。
if (window.location.hash==='#a'){ //a 顯示,其他隱藏}
就用上面的方法來判斷是從哪個鏈接點過來的,就能顯示相應的塊。
回答2:用錨點實現就好了
// 外部頁面:<a href='http://www.aoyou183.cn/wenda/1.html#a'>a</a><a href='http://www.aoyou183.cn/wenda/1.html#b'>b</a><a href='http://www.aoyou183.cn/wenda/1.html#c'>c</a><a href='http://www.aoyou183.cn/wenda/1.html#d'>d</a><a href='http://www.aoyou183.cn/wenda/1.html#e'>e</a>跳轉后1.html的頁面:<ul class='uls'> <li class='uls_li_checked'>a</li> <li id='b'>b</li> <li id='c'>c</li> <li id='d'>d</li> <li id='e'>e</li></ul><p class='con'> <p>a的內容</p> <p style='display:none;'>b的內容</p> <p style='display:none;'>c的內容</p> <p style='display:none;'>d的內容</p> <p style='display:none;'>e的內容</p></p>回答3:
我覺得你對 HTML 簡單了解一下,然后著手學習目前比較流行的前端開發吧,如:(Vue.js)[https://cn.vuejs.org/]、(React.js)[http://react-china.org/]、(AngularJS)[https://angularjs.org/]等。因為像你說的這種交互,除了使用常規的動態編程語言(如:PHP、Java等),前端實現起來還是比較麻煩的。深了就不多說了,你可以參考我以前回答的一個問題:/q/10...。他的需求和你說的很像,只是一個傳遞 username,一個傳遞 index;大概代碼如下:這里是有錨點作為參數傳遞:
<a href='http://www.aoyou183.cn/wenda/1.html#1'>a</a><a href='http://www.aoyou183.cn/wenda/1.html#2'>b</a>
1.html 獲取傳入的錨點信息
<script type='test/javascript'>// $(function(){ ··· }) 等于 $(document).ready();$(function(){ ’use strict’;// 初始化變量 var useIndex = window.location.hash, // String:’#N’,$tabNavItem = $(’.uls > li’),tabNavItemActive = ’uls_li_checked’,$tabContItem = $(’.con’).children();; // 修正參數 - W.L.hash 獲取的是 `#string` 的格式,我們只需要 # 后面的內容 useIndex = useIndex ? parseInt(useIndex.substr(1)) : 0;// 初始化自動顯示 flip( useIndex );// 手動切換 tabNavItem.on(’click.app’,function(e){flip( $(this).index() ); })// 切換方法 function flip(index){// 全部移除選中 - 選擇當前索引的條目 - 添加選中$tabNavItem.removeClass(tabNavItemActive).eq(index).addClass(tabNavItemActive);// 隱藏已顯示條目 - 選擇當前索引他條目 - 顯示$tabContItem.hide().eq(index).show(); } });</script>
