【发布时间】:2013-01-06 05:34:39
【问题描述】:
所以,这是其中目标很简单的事情之一,但一整天后我仍然感到难过。使用 drupal,我正在尝试链接到 jquery ui 选项卡内的命名锚点。我能找到的最有希望的东西在这里:Link to an anchor within JQuery tabbed content,但我无法让它工作。历史记录已开启,我正在使用链接中的“goto”参数。
我使用的javascript如下:
已更新,下面是新的 jquery。我现在在单击链接时导航到相应的选项卡,但是页面停留在同一位置而不是滚动到锚点
jQuery(document).ready(function($) {
$('a[goto]').click(function(evt) {
evt.preventDefault();
var whereTo = $(this).attr('goto');
$tabs = $("ul.ui-tabs-nav li");
$tabs.find('a[href=#' + whereTo + ']').trigger('click');
//alert(attr('name'));
//alert( $('#'+whereTo+' a').offset().top );
$('html, body').animate({
scrollTop: $('#'+whereTo+' a').offset().top
});
});
});
相关的html结构为:
<div id="quicktabs-event" class="quicktabs-ui-wrapper qt-ui-tabs-processed-processed ui-tabs ui-widget ui-widget-content ui-corner-all">
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
<li class="ui-state-default ui-corner-top">
<li class="ui-state-default ui-corner-top">
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-focus">
<a href="#qt-event-ui-tabs3" tabindex="2">Classes</a>
</li>
<li class="ui-state-default ui-corner-top">
<::after>
</ul>
<div id="qt-event-ui-tabs1" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
<div id="qt-event-ui-tabs2" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
<div id="qt-event-ui-tabs3" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
<div id="qt-event-ui-tabs4" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide">
</div>
</div>
<::after>
</div>
</div>
感谢您的帮助。
【问题讨论】:
-
对于初学者来说,您的
- 标签似乎没有正确关闭。
-
我正在从 firebug 中复制以显示结构,因此它没有完美通过,但 html 工作正常
-
看这个新鲜的,好像 $('a').not('.ui-tabs-nav li a').on('click', function(evt) { 是不会触发,因为 url 中的 hashtg 正在发生变化,我假设 preventdefault 会阻止这种情况
标签: javascript jquery drupal drupal-7 jquery-ui-tabs