为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用浏览器返回功能关闭图层?

如何使用浏览器返回功能关闭图层?

Smart猫小萌 2021-06-01 05:47:14
我正在打开一个完整的页面层,以便在单击按钮时进行过滤。可以通过按钮关闭它,但有些确实使用浏览器的导航功能,然后加载最后一页而不是打开它的页面。为了解决这个问题,我看到有两种方法。一种带有哈希值,一种带有浏览器状态。浏览器状态不会在后退按钮上为我关闭图层,只是更改了 URL,所以我正在尝试哈希选项。虽然它有效,但问题是我确实有多个层可以调用例如搜索层。// show/hide filter layervar filter_layer_toggle = function() {    // window.history.pushState('page2', 'Title', '/page2.php');    $("#btn_save_search").toggle()    // more happening here}//this needs to be called on another eventvar search_layer_toggle = function() {    // toggles search layer elements}$("#filter_button, #btn_fltr").on("click", function(){    window.location.hash = "filter";});document.location.hash = '';$( window ).on( 'hashchange', function( e ) {    filter_layer_toggle();} );使用多层时,如何支持浏览器返回功能?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

您可以创建一个函数来检查散列,然后使用switch例如切换适当的层。


然后在load和hashchange事件上调用该函数。


你会有类似的东西:


function parseHash() {

  switch(window.location.hash) {

    case '#filter':

      filter_layer_toggle();

      break;

    case '#search':

      search_layer_toggle();

      break;

    default:

     // proceed with the not layered page

  }

}

在hashchange你打电话的事件中parseHash()


查看完整回答
反对 回复 2021-06-03
  • 1 回答
  • 0 关注
  • 151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信