Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将我的curHash代码设置为使用";:&引用;而不是",|&引用;_Javascript_Jquery - Fatal编程技术网

Javascript 将我的curHash代码设置为使用";:&引用;而不是",|&引用;

Javascript 将我的curHash代码设置为使用";:&引用;而不是",|&引用;,javascript,jquery,Javascript,Jquery,我们使用下面的代码可以链接到上的特定选项卡 正如目前所做的那样,它允许我们通过向URL添加#成员选项卡| 3链接到特定选项卡,其中成员选项卡是类,3是要打开的选项卡,它们之间用“|”分隔 问题:符号“|”在许多情况下都不受支持,包括下面的示例。“|”将改为“#7C”。如何调整代码以使用不同的分隔符号(如冒号或and符号) 例如: 函数_setTab(){ //获取当前哈希值 var curHash=window.location.hash.substr(1); //仅当提供了哈希并将其范围限定

我们使用下面的代码可以链接到上的特定选项卡

正如目前所做的那样,它允许我们通过向URL添加
#成员选项卡| 3
链接到特定选项卡,其中成员选项卡是类,3是要打开的选项卡,它们之间用“|”分隔

问题:符号“|”在许多情况下都不受支持,包括下面的示例。“|”将改为“#7C”。如何调整代码以使用不同的分隔符号(如冒号或and符号)

例如:


函数_setTab(){
//获取当前哈希值
var curHash=window.location.hash.substr(1);
//仅当提供了哈希并将其范围限定到成员选项卡时才继续
if(!curHash | |!curHash.match('member-tabs')){
返回false;
}
//split和int val tab num
curHash=parseInt(curHash.split(“|”)[1]);
//如果选项卡为当前状态,则忽略
如果(curHash==window.\tabu选中){
返回false;
}
//将当前选项卡设置为窗口
窗口。\ tabu selected=curHash;
//将单击事件添加到所选选项卡
开关(curHash){
案例0:
案例1:
案例2:
案例3:
案例4:
jQuery('#member tabs.et_pb_tab.'+curHash+'a')。单击();
打破
违约:
返回false;
打破
}
//滚动到选项卡容器
_滚动totabs();
}
//滚动到偏移量为50px的成员选项卡容器
函数_scrollToTabs(){
var oTabs=jQuery(“#成员选项卡”);
如果(otab.length>0){
jQuery('html,body')。动画(
{
scrollTop:otab.offset().top-50,
},
1000,
);
}
返回false;
}
//为加载时选择的选项卡设置错误状态
窗口。\ tabu selected=false;
//附加到窗口加载,因为选项卡稍后在文档中初始化
jQuery(window).on('load',function()){
//检查初始哈希状态
_setTab();
//添加哈希更改窗口侦听器
jQuery(window).on('hashchange',function()){
_setTab();
});
})

您将使用的任何字符都将变为代码,称为URL编码。通常它是自动解码的,就像它被自动编码一样。查看URL编码和URL解码以供参考。基本上,你想在url中解码散列,然后拆分。阅读后在curHash上应用
decodeURI
,这将确保你得到一条解码的字符串。我尝试了一些方法,但我是一个相对初学者。在上面的代码中,我在哪里应用“decodeURI”来获得解码字符串?
<script>
function _setTab() {
  // get current hash value
  var curHash = window.location.hash.substr(1);

  // only continue if hash provided and scoped to member tabs
  if (!curHash || !curHash.match('member-tabs')) {
    return false;
  }

  // split and int val tab num
  curHash = parseInt(curHash.split('|')[1]);

  // ignore if tab is current state
  if (curHash === window._tabSelected) {
    return false;
  }

  // set current tab to window
  window._tabSelected = curHash;

  // add click event to tab selected
  switch (curHash) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
      jQuery('#member-tabs .et_pb_tab_' + curHash + ' a').click();
      break;

    default:
      return false;
      break;
  }

  // scroll to tabs container
  _scrollToTabs();
}

// scroll to member tabs container with 50px offset
function _scrollToTabs() {
  var oTabs = jQuery('#member-tabs');
  if (oTabs.length > 0) {
    jQuery('html,body').animate(
      {
        scrollTop: oTabs.offset().top - 50,
      },
      1000,
    );
  }
  return false;
}

// set falsey state for tab selected on load
window._tabSelected = false;

// attach to window load because the tabs are initialized later in document
jQuery(window).on('load', function() {
  // check for initial hash state
  _setTab();

  // add hash change window listener
  jQuery(window).on('hashchange', function() {
    _setTab();
  });
})
</script>