Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 触发某些jQuery选项卡的HTML链接_Javascript_Jquery_Html - Fatal编程技术网

Javascript 触发某些jQuery选项卡的HTML链接

Javascript 触发某些jQuery选项卡的HTML链接,javascript,jquery,html,Javascript,Jquery,Html,在花了很长时间试图找到解决方案之后,我想是时候问问专家了 我已经在我的站点上实现了jQuery选项卡,但是,除了选择一个选项卡来显示内容外,如果您单击页面上其他地方的标准html链接,我还希望能够显示不同的选项卡内容 可以在此处看到该页面,所讨论的html链接是位于左侧的链接(例如,用户可以选择他们想要的选项卡,或者从左侧选择一个区域,然后显示该区域选项卡内容) 这是我目前拥有的js: $(document).ready(function() { //When page loads...

在花了很长时间试图找到解决方案之后,我想是时候问问专家了

我已经在我的站点上实现了jQuery选项卡,但是,除了选择一个选项卡来显示内容外,如果您单击页面上其他地方的标准html链接,我还希望能够显示不同的选项卡内容

可以在此处看到该页面,所讨论的html链接是位于左侧的链接(例如,用户可以选择他们想要的选项卡,或者从左侧选择一个区域,然后显示该区域选项卡内容)

这是我目前拥有的js:

$(document).ready(function() {

 //When page loads...
 $(".tab_content").hide(); //Hide all content
 $("ul.tabs li:first").addClass("active").show(); //Activate first tab
 $(".tab_content:first").show(); //Show first tab content

 //On Click Event
 $("ul.tabs li").click(function() {
  $("ul.tabs li").removeClass("active"); //Remove any "active" class
  $(this).addClass("active"); //Add "active" class to selected tab
  $(".tab_content").hide(); //Hide all tab content

  var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
  $(activeTab).fadeIn(2000); //Fade in the active ID content
  return false;
 });
});
非常感谢您的帮助


Andy

添加相同功能的最简单方法是将
选项卡
类添加到左侧边栏,或者,将选择边栏菜单的选择器添加到选项卡的选择器

在这一点上,我建议将您那里的代码替换为我为另一个堆栈溢出问题重写的代码。通过遵循最佳实践,它更高效,更干净

var tabContents = $(".tab_content").hide(),
    tabs = $("ul.tabs li, .anynavbar ul li"); // Second selector to match left hand sidebar

tabs.first().addClass("active").show();
tabContents.first().show();

tabs.click(function() {
    var $this = $(this),
        activeTab = $this.find('a').attr('href');

    if(!$this.hasClass('active') && activeTab.length > 1 && activeTab.indexOf('#') === 0){
        $this.addClass('active').siblings().removeClass('active');
        tabContents.hide().filter(activeTab).fadeIn();
    }

    return false;
});
通过执行上述任一操作,我们可以添加必要的事件处理程序来更改选项卡


我还对代码进行了编辑,添加了一个简单的检查,用于检查HTML中的有效
href
值,其中一些锚缺少相应的
href
值来激活正确的选项卡。另外,查看您现在正在使用的代码,您错过了一个
})位于
文档.ready
处理程序的末尾,这就是代码不起作用的原因

嗨,张毅,谢谢你的上述。。。我复制了与上面完全相同的代码,以替换已经存在且从未运行过的jquery选项卡代码。每个选项卡式内容区域一个接一个地列出,而不是在单击之前隐藏。知道我做错了什么吗?再次感谢@用户:您是否将其包含在
文档中。是否准备好了事件处理程序?@user此外,除了前两个“South East”和“South West”外,侧边栏上的所有链接都具有有效的
href
值,以使其正常工作-您也检查了吗?是的,它包含在document.ready事件处理程序中,正如您将看到的,所有选项卡式内容都加载到下面的列表中,而不是隐藏。此外,侧栏中的“South East”和“South West”链接在我尝试使其工作时刚刚获得了hrefs(但没有!)。