0

我想在单击时添加一个按钮,并在单击时添加新按钮以提醒某些内容,但目前它没有在单击新按钮时提醒消息

那么我做错了什么。

这是我到目前为止所拥有的

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        $('#first').bind('click', addbtn);
        $('#second').on('click', alert);

        function addbtn(){
            $('.box').html('<input type="submit" value="Click me" id="second" />');
        }
        function alert(){
            alert("works");
        }
    });
    </script>
</head>
<body>
    <input type="submit" value="Click me" id="first" />
    <div class="box"></div>
</body>
</html>
4

1 回答 1

2

在您的示例中,您将事件处理程序绑定到它存在之前的“第二个”。因此没有什么可以绑定的。

现在因为您使用的是 jquery 10+,所以实时事件不起作用,所以您必须使用 on 事件处理程序。现在 ON 事件处理程序附加到一个对象并提供一个选择器选项。在这种情况下,您希望触发选择器#second 的点击事件。如果我失去了你,更多细节在这里。http://api.jquery.com/on/

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
        $('#first').bind('click', addbtn);

        $('.box').on('click', '#second', function(){
            alert('works');
        })

        function addbtn(){
            $('.box').html('<input type="submit" value="Click me" id="second" />');
        }

    });
    </script>
</head>
<body>
    <input type="submit" value="Click me" id="first" />
    <div class="box"></div>
</body>
</html>

现在另一个问题是您定义了一个alert()调用内置函数的函数alert()。好吧,当您定义了函数时,您实际上已经覆盖了该函数并导致无限递归。除非绝对需要,否则避免覆盖浏览器方法。

干杯。

于 2013-11-12T22:33:38.027 回答