跳转到动态创建的元素

时间:2016-05-05 06:58:55

标签: javascript jquery

使用以下jQuery代码......

$(document).ready(function() {
    $('body').delegate('.page-scroll a', 'click', function(event){
        var $anchor = $(this);
        $('html, body').stop().animate({
            scrollTop: $($anchor.attr('href')).offset().top
        }, 1500, 'easeInOutExpo');
        event.preventDefault();
    });

    $( "#test" ).append('<div class="page-scroll"><a href="#im-dynamic">Test Dynamic</a><div id="im-dynamic">Dynamic</div></div>');  

});

这个HTML ......

<body>
    <div id="test">
        <div class="page-scroll">

            <a href="#im-not-dynamic">Test Non Dynamic</a>
            <div id="im-not-dynamic">Non Dynamic</div>

        </div>
    </div>  
</body>

当我点击以下链接时,它会按预期跳转。

<a href="#im-not-dynamic">Test Non Dynamic</a>
<div id="im-not-dynamic">Non Dynamic</div>

但是当我点击以下链接时,我得到了#34; Uncaught TypeError:无法读取属性&#39; top&#39;未定义的。&#34;它引用了&#34; scrollTop&#34;上面的一行。假设这是问题,我如何使DOM中的im-dynamic div元素可见?

<a href="#im-dynamic">Test Dynamic</a>
<div id="im-dynamic">Dynamic</div>

编辑:为了澄清,我可以看到动态元素很好。他们正在创建。出于某种原因,JS似乎无法看到im-dynamic div元素,并且正在创建该错误。

0 个答案:

没有答案