[英]How to scroll to an element which has dynamic id using jquery
我以静态方式完成了这个功能,但是如何使用jquery进行滚动,以便它可以平滑地滚动到我动态添加的id的特定元素。
var data = [{"name": "Aruba", "code": "A"},{"name": "AndorrA", "code": "A"},{"name": "Bhutan", "code": "B"},{"name": "Bolivia", "code": "B"}] var num=0; $.each(data, function(key, val) { if (!$("#aZContent ul." + val.code).is("*")) { $("<ul />", {"class": val.code,"html": "<li>"+ val.name + "</li>"}).appendTo("#aZContent").before('<b class=' + val.code + ' id="letter_' + num++ + '">' + val.code + '</a></b>'); } else { $("b." + val.code).each(function() { if (this.textContent === val.code) { $(this).next("ul").append("<li>" + val.name + "</li>"); } }); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <div class="alphabet" id="alphaTab"> <a href="#letter_0">A</a> <a href="#letter_1">B</a> </div> <div id="aZContent"> <ul></ul> </div> <div style="height:500px"></div>
单击链接'A'时,它应滚动到“A”,同样如此
在我的应用程序中,我有一个按钮,每次单击一个按钮时将表单字段集附加到正文 - 我想将页面向下滚动到新元素,但由于jQuery的滚动的冒泡和事件绑定限制,这不起作用职能。 我提出了一个简单的修复...
function scroll(pixels){
$('html, body').animate({
scrollTop: pixels
}, 1000);
};
function addObservation(x){
$('body').append(x);
newFieldSet = $('fieldset').last();
pixelsFromTop = newFieldSet.offset().top;
scroll(pixelsFromTop);
};
$(document).on("click", "#add_observation", function(){
addObservation("<fieldset>SOME FORM FIELDS HERE</fieldset>");
});
因此,每次添加.offset().top
,jQuery都会找到最后一个.offset().top
,然后是.offset().top
测量.offset().top
从顶部开始的像素数,然后平滑地滚动距离的窗口。
我没有得到你的申请。 但它应该很简单。
你说id是“动态的”,这意味着会有动态生成的元素和相应的按钮/链接。
现在你需要做的就是......
让我们说链接的calss是.linksy
。
jQuery(".linksy").on('click', function(){
e.preventDefault();
$id = jQuery(this).attr('href');
$('body').scrollTo('#' + $id);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.