javascript - jQuery UI 选项卡 - 锚定到内部链接

标签 javascript jquery jquery-ui jquery-tabs

我在使用带有内部 anchor 链接的 jQuery UI (v1.11+) 选项卡时遇到问题。我的代码如下:

Javascript:

$(document).ready(function () {
 $("#tabs").tabs();

});

HTML:

<div id="tabs">
                <ul class="tabs-list">
                  <li> <a href="#tabs-1">
                    <div class="tab"> Tab 1 </div>
                    </a> </li>
                  <li> <a href="#tabs-2">
                    <div class="tab"> Tab 2 </div>
                    </a> </li>
                </ul>

                <div id="tabs-1">
                  <div><a href="#">Text for tab 1</a></div>
                  </div>
                </div>
                <div id="tabs-2">
                 <a href="#"> Text for Tab 2</a>
                </div>
</div>

我在尝试从页面不同区域的文本链接链接到这些选项卡时遇到问题。目标是单击每个文本链接到指定选项卡后平滑滚动:

<a href="#tabs-1">Link to Tab 1</a>
<a href="#tabs-2">Link to Tab 2</a>

我在这里尝试了各种搜索,包括使用 beforeActivate 函数(因为所有“select”示例对于较新的 jQuery UI 版本都已过时),但对我来说没有任何作用。有人可以帮忙吗? jQuery UI 文档没有显示这方面的示例。

最佳答案

使用下面的代码。检查DEMO

使用选项卡的active选项从外部资源中进行选择。查看更多HERE

使用 beforeActivate 事件 在激活选项卡之前立即触发。检查HERE

HTML

 <div id="tabs">
            <ul class="tabs-list">
              <li> <a href="#tabs-1">
                <div class="tab"> Tab 1 </div>
                </a> </li>
              <li> <a href="#tabs-2">
                <div class="tab"> Tab 2 </div>
                </a> </li>
            </ul>

            <div id="tabs-1">
              <div><a href="#">Text for tab 1</a></div>
              </div>


              <div id="tabs-2">
             <a href="#"> Text for Tab 2</a>
            </div>
 </div>
<a href="#tabs-1" class="external-tab">Link to Tab 1</a>
<a href="#tabs-2" class="external-tab">Link to Tab 2</a>

JQUERY

var tab ;
$("#tabs").tabs({
  beforeActivate :  function( event, ui ) {
    $("html, body").animate({ scrollTop: $("#tabs").offset().top }, 1000);
  } 
});

$('.external-tab').click(function (event) {
  event.preventDefault();
   tab = $(this).attr('href');
   var index = $('div[id^=tabs-]').index($(tab));
  $('#tabs').tabs( "option", "active", index );
});

关于javascript - jQuery UI 选项卡 - 锚定到内部链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29466122/

相关文章:

javascript - jquery 两个超时循环

javascript - jQuery 使用 on 方法将函数绑定(bind)到按钮

javascript - jQuery:如何知道输入元素是否有焦点

javascript - Chrome 扩展开发 - POST 到新标签

javascript - 如何在知道前两个点和到下一个点的距离的情况下获得下一个点的坐标

c# - 如何防止用户进行未经授权的 web 方法调用和篡改客户端验证

javascript - jquery 多文件上传限制文件数量不工作

jQuery Nice Select 无法使用隐藏的溢出

javascript - 使用 Express 在 node.js 中需要 jQuery-ui 时出现 "TypeError: undefined is not a function"

重新调用 jQuery UI 对话框时它不是一个函数