使用以下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元素,并且正在创建该错误。