使用jQuery选择New Element

时间:2012-01-30 00:09:09

标签: jquery

我正在学习jQuery / javascript并且有一个相当基本的问题。为什么这不起作用?提前谢谢。

<script type="text/javascript">
            $(document).ready(function () {
                $('<div/>', {
                    id: 'foo',
                    text: 'Does not work'
                }).appendTo('body');       });
</script>

<script type="text/javascript">
            $("#foo").click(function () {
                alert('Success'); });
</script>

2 个答案:

答案 0 :(得分:2)

它不起作用,因为第二个脚本部分将在$(document).ready被触发之前执行。因此,它将尝试将onclick处理程序附加到尚不存在的元素。

您可以通过在添加元素时将click()事件附加到元素来使其工作:

$(document).ready(function () {
    $('<div/>', {
         id: 'foo',
         text: 'Does not work'
    })
    .appendTo('body')
    .click(function() {
       alert('Success');
    });       
});

或使用on()

$('document').on("click", "#foo", function() {
  alert('Success');
});

答案 1 :(得分:1)

你必须将所有这些放在$(文件).ready()。

所以:

$(document).ready(function () {
                $('<div/>', {
                    id: 'foo',
                    text: 'Does not work'
                }).appendTo('body');       
                $("#foo").click(function () {
                alert('Success'); });
});