如何滚动到使用jQuery的动态ID的元素

如何滚动到使用jQuery的动态ID的元素

问题描述:

我已经完成静态的功能,但我怎么能做到这一点使用jQuery的滚动,以便它将平滑滚动到特定的元素,我已经动态添加的ID。如何滚动到使用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("*")) { 
 
\t  $("<ul />", {"class": val.code,"html": "<li>"+ val.name + "</li>"}).appendTo("#aZContent").before('<b class=' + val.code + ' id="letter_' + num++ + '">' + val.code + '</a></b>'); 
 
\t } else { 
 
\t \t $("b." + val.code).each(function() { 
 
\t \t  if (this.textContent === val.code) { 
 
\t \t \t \t $(this).next("ul").append("<li>" + val.name + "</li>"); 
 
\t \t \t } 
 
\t  }); 
 
\t } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div class="alphabet" id="alphaTab"> 
 
\t <a href="#letter_0">A</a> 
 
\t <a href="#letter_1">B</a> \t 
 
</div> \t \t 
 
<div id="aZContent"> 
 
\t <ul></ul> 
 
</div> 
 
<div style="height:500px"></div>

在点击链接的 'A' 应该滚动至 “A”,同样

+0

你可以用'$替换所有其他( “B” + val.code)。接下来( “UL”)追加( “

  • ”+ val.name +“
  • ”);' – caub
    +0

    @crl我做了一个静态的滚动我怎么能做一个平滑的滚动使用jQuery的元素 –

    +0

    静态的方式?你的意思是#hash-id?所以你想用你自定义的方式替换它来滚动?我可以问为什么? – caub

    +0

    而不是张贴链接作为答案,请张贴相关代码回答本身或只是评论根据OP –

    +0

    谢谢。当然,我会按照你的建议去做。 –

    +0

    @VishalBharti我已经试过这个BT不成功:( –

    在我的应用程序,我有一个按钮,每一个按钮被点击时附加形式的fieldsets的身体 - 我想页面向下卷动至新元素,但由于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>"); 
    }); 
    

    所以每次添加一个字段时,发现jQuery的最后一个,然后.offset().top措施的字段集多少像素从顶部,然后平稳地滚动窗口,距离。

    我没有完全得到你的申请。但它应该很简单。

    你说的ID是“动态的”,这意味着会有动态生成的元素和相应的按钮/链接。

    现在,所有你需要做的是..

    可以说该链接的CALSS是.linksy。 。

    jQuery(".linksy").on('click', function(){ 
        e.preventDefault(); 
        $id = jQuery(this).attr('href'); 
        $('body').scrollTo('#' + $id); 
    });