javascript - 在注册和登录表单之间切换

标签 javascript jquery html css ajax

 <script>
$(document).ready(function(){
    $("#register_link").click(function()
    {
        $("#login_or_register").empty();
        $("#login_or_register").load("register_form.php");
    });
    $("#login_link").click(function()
    {
        $("#login_or_register").empty();
        $("#login_or_register").load("login_form.php");
    });
});

</script>

这是我用于在登录和注册表单之间切换的 jquery 代码。 该页面最初包含登录表单和加载注册表单的链接。它第一次加载注册表格和加载登录表格的链接。但在那之后它不起作用。它不会从注册表更改为登录表单。如何纠正这个问题?

最佳答案

这是因为监听器仅在现有元素上设置。当您使用 Ajax (jQuery.load()) 加载某些内容时,这些新元素将不会有监听器。您可以在加载新内容后通过重新初始化点击监听器来修复它,如下所示:

<script>
    function listenToClick() {
        $("#register_link").click(function() {
            $("#login_or_register").empty();
            $("#login_or_register").load("register_form.php", function() {
                listenToClick();
            });
        });

        $("#login_link").click(function() {
            $("#login_or_register").empty();
            $("#login_or_register").load("login_form.php", function() {
                listenToClick();
            });
        });
    }

    $(document).ready(function(){
        listenToClick();
    });
</script>

更好的选择是使用 on 监听点击事件功能。 on函数还监听 future 的元素(由 jQuery.load() 创建的元素)。

<script>
    $(document).ready(function() {

        $("#register_link").on('click', function() {
            $("#login_or_register").empty();
            $("#login_or_register").load("register_form.php");
        });

        $("#login_link").on('click', function() {
            $("#login_or_register").empty();
            $("#login_or_register").load("login_form.php");
        });

    });
</script>

关于javascript - 在注册和登录表单之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809319/

相关文章:

jquery - CSS 上的正则表达式

html - 如何让三个元素填充一个 div,其中中心元素具有动态宽度?

javascript - .blur() 声音通知

javascript - 使用 $ ('#MyModal' ).modal ('show' ) 将数据传递到模态;

javascript - Grunt 和 Bower 依赖管理

javascript - 从 NATIVE 沙箱更新到 IFRAME;按钮不起作用

javascript - 将 Google 闭包模板与 jQuery 结合使用

javascript - 将外部 html 包含到 enduro.js 中

Javascript:为什么我的即时搜索功能运行滞后,如何改进?

javascript - HTML5 视频滚动到 View 后即可播放。