提交<按钮>在爆炸之后不起作用

时间:2016-03-18 15:53:07

标签: javascript jquery html

我已经查看了stackoverflow几天,而且我没有工作过。无论如何,在爆炸并向我的文档附加提交按钮后,按钮在单击时不会发出警报。

&#13;
&#13;
    $(document).ready(function() {
      alert('hi');
      $("#a").click(function() {
        $(".main, .topbar, button").toggle("explode");
        $('body').delay(8100).append("<img src='picture.png'> <form >  <input            type='text'></form><button id='submit'>submit</button>");
      });
      $("#submit").click(function() {
        alert('hi');

      });
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='a'>button</button>
&#13;
&#13;
&#13;

有什么建议吗?

3 个答案:

答案 0 :(得分:6)

在将提交添加到htmlDOM之前,您将click绑定到提交。要这样做,你必须先将提交添加到htmlDOM,然后然后绑定事件处理程序。

但是,对于这样的动态元素,您可以使用来自任何父元素的jQuery on函数和delegate。建议不要从body委派,您可以从document.ready活动期间出现的最近的父级进行委派。

&#13;
&#13;
$(document).ready(function() {
      alert('hi');
      $("#a").click(function() {
        $(".main, .topbar, button").toggle("explode");
        $('body').delay(8100).append("<img src='picture.png'> <form >  <input            type='text'></form><button id='submit'>submit</button>");
      });
      $("body").on('click','#submit',function() {
        alert('hi');

      });
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='a'>button</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不是100%,如果我理解你在那里做的事情,但检查一下是否有效:

        <script>
        $(document).ready(function () {
            alert('hi')
            $("#a").click(function () {
                $(".main, .topbar, button").toggle("explode");
                $('body').delay(8100).append("<img src='img.png'> <form >  <input            type='text'><button id='submit'>submit</button></form>");
            });
            $("#submit").click(function () {
                alert('hi');

            });
        });
    </script>

答案 2 :(得分:0)

我假设您在页面加载后插入按钮,但在元素位于页面之前调用单击处理程序。因此jQuery无法找到你的元素。

如果你想在页面加载时分配你的点击处理程序,那很好。只需将您的点击处理程序分配给页面加载时页面上的任何父元素,例如<body>,然后使用jQuery .on()方法指定后代选择器,如下所示:

$('body').on('click', '#submit', function(){ alert('hi'); });