【问题标题】:Console output appearing for one millisecond?控制台输出出现一毫秒?
【发布时间】:2014-02-15 21:51:24
【问题描述】:

我正在使用 jQuery,并且我已经实现了一个按钮单击处理程序。为了测试,我一直在设置内容为“test”的控制台输出。但是,当单击按钮时,输出会出现在控制台中,但只是短暂的片刻,然后再次消失。每次单击按钮时都会重复。

JS代码:

$(document).ready(function () {
$("#go").click(function () {
    console.log("test");
});
});

HTML 代码:

<form class="navbar-form navbar-right">
         <button id="go" class="btn btn-default">Go</button>
</form>

有解决办法吗?

【问题讨论】:

    标签: javascript jquery html console


    【解决方案1】:

    这是因为按钮提交表单并在浏览器中重新加载整个页面。如果您想留在同一页面并继续执行一些 javascript 代码,请通过从您的 click 处理程序返回 false 来取消此按钮的默认操作:

    $(document).ready(function () {
        $("#go").click(function () {
            console.log("test");
            return false;
        });
    });
    

    如果您不取消默认操作,浏览器将简单地重定向,没有时间运行任何 javascript 内容。

    【讨论】:

    • 修复了它,尽管它在我的另一个使用相同基础架构的项目中运行良好。奇怪。
    • 不,这不可能正常工作。也许您在您的另一个项目中使用了&lt;input type="button"&gt;,这显然与表单的提交按钮不同,并且实际上并没有提交表单。很容易看到正在发生的事情。只需打开 javascript 调试控制台的网络选项卡,点击按钮后查看是否有 HTTP 请求发送到服务器。
    • 可能是因为它被包装成的形式?
    • 它有什么不同?如果你想取消某些处理程序的默认操作,你应该从它返回 false。否则,您可能会遇到当前遇到的问题。
    • 你就在那里。好吧,是时候等待我接受你的回答了;)
    猜你喜欢
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    相关资源
    最近更新 更多