【问题标题】:e.preventDefault not working — jquerye.preventDefault 不起作用 - jquery
【发布时间】:2012-09-12 20:51:33
【问题描述】:

我有一些简单的代码。我还在摸索这个 jquery malark,所以要轻松。

我试图阻止那些讨厌的 hastags 在用户被点击时将它们带到页面顶部。

有问题的网站是这样的:studiojubilee.com/pattern. 如果您向下滚动页面,然后单击客户/信息,页面会跳到顶部。我正在尝试用这个来解决它:

<script type="text/javascript">
    $(document).ready(function(){

        $('html').fadeIn(800);
        $('#information').click(function(e) {
            $("#gutter, #us").fadeToggle(600);
        });
        $('#clients').click(function(e) {
            $("ul, #gutter").fadeToggle(600);
        });

        $('#title').click(function(e) {
            $("#gutter").fadeToggle(600);
            e.preventDefault();
        });
    });
</script>

这里是html:

<div id="clients"><a href="#">Clients</a></div>

<div id="title"><a href="#">Studio Jubilee</a></div>

<div id="information"><a href="#">Information</a></div>

我知道这对于任何具有任何专业知识的人来说都可能看起来很愚蠢。帮助兄弟?

汤姆

【问题讨论】:

  • 您是否考虑过在链接上使用javascript: void false; 而不是#
  • 试试把 e.preventDefault();作为事件处理函数的第一行

标签: jquery css events hyperlink


【解决方案1】:

行:

$('#title').click(function(e) { ...

没有被调用,因为只有中心链接有这个 id。

改用类。

<div id="clients"><a class="prevent-default" href="#">Clients</a></div>

<script>
    $('.prevent-default').click(function(e) { e.preventDefault(); });
</script>

【讨论】:

    【解决方案2】:

    这里的标题是什么。如果它是一个 div,我认为它没有任何与之关联的默认事件。

    例如,如果您使用的是 anchor 标签,它的默认功能是转到特定链接。如果您使用 preventDefault 那么它是有意义的.. 但在其他情况下则不然

    如果您使用按钮,那么这样做会阻止按钮单击事件的默认功能..

    【讨论】:

    • 好收获。这是一个div。 id需要移动到锚标签
    • id需要移动到锚标签吗?
    猜你喜欢
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多