1

我在通过 jquery 禁用 href 链接时遇到了困难。我正在使用我修改的这种方法。有人可以建议或帮助我解决这个问题吗?谢谢你。

jQuery/js

<script>
 $('.next-tab').click(function() {
     $('.st_tab_active').attr('disabled','disabled');
     var tab=  $('.st_tab_active').parent().next().children('a');
     tab.removeAttr('disabled');
     tab.trigger('click');
     return false;
      });
</script>

html

<ul class="st_tabs">
    <li><a href="#st_content_1" class="st_tab" disabled="disabled">Horizontal Tab #1</a></li>
    <li><a href="#st_content_2" class="st_tab" disabled="disabled">Horizontal Tab #2</a></li>
    <li><a href="#st_content_3" class="st_tab" disabled="disabled">Horizontal Tab #3</a></li>
    <li><a href="#st_content_4" class="st_tab" disabled="disabled">Horizontal Tab #4</a></li>
    <li><a href="#st_content_5" class="st_tab" disabled="disabled">Horizontal Tab #5</a></li>
</ul>
4

4 回答 4

4

您可以使用preventDefault();禁用链接的默认行为(即导航到给定的href)。

$("a").click(function(e){
    e.preventDefault(); 
});
于 2012-06-25T21:04:51.007 回答
3

所有的答案看起来都是可能的解决方案

这是关于在锚标签上使用禁用属性的讨论

HTML Anchor 标记是否应该尊重 Disabled 属性?

更好的是,不要使用 disabled 属性,这是非法的;)

现在你有

event.preventDefault();

或者

return false;

这是关于两者使用的讨论,

event.preventDefault() 与返回 false

对于您的情况,看起来 return false 很好,因为您也不想冒泡。

由于您没有很好地解释该位置,因此无法说出您的确切问题的解决方案,

当单击某些“下一个选项卡”时,您似乎正在尝试使用某些启用/禁用选项卡切换选项卡。如果您也可以解释,我们将很乐意提供帮助

于 2012-06-25T21:20:16.700 回答
1

您可以使用两种方法,阻止默认操作或简单地返回 false。

$('a').click(function(event)
{
    event.preventDefault(); 

    // Rest of the code

    return false;
});
于 2012-06-25T21:08:56.103 回答
1

正如 ahren 之前所说,这是要走的路,但是为了不禁用您网站上的每个 href,请使用:
$('a.st_tab').click(function(e){
e.preventDefault();
});

于 2012-06-25T21:11:31.347 回答