传递动态id值jquery div跳转到函数

我被困在jquery div跳到问题。 问题是我正在创建动态 ,动态div也说

我正在使用以下jquery函数滚动到特别的div

  $(document).ready(function (){ $("#click").click(function (){ alert ("test"); //$(this).animate(function(){ $('html, body').animate({ scrollTop: $("#div1").offset().top }, 1000); //}); }); });  

我的问题是如何将动态ID传递给$("")任何帮助都将受到高度赞赏。

 $(document).ready(function (){ $(".click").click(function (){ alert ("test"); var divID = '#' + $(this).attr('id') + '_div'; $('html, body').animate({ scrollTop: $(divID).offset().top }, 1000); }); }); 

并添加

字符串连接:

 $("#" + this.id + "_div").offset().top 

请注意,不需要创建唯一ID,DOM duo具有树状结构,提供了许多不同的方法来遍历和选择目标元素。

由于您要动态生成元素,因此您还应该委派事件,可以向元素添加类并使用on方法:

 $('#aStaticParentElement').on('click', '.anchors', function() { // TODO: // select the target element either by traversing // or by using an identifier }); 

在这里可视化

首先,由于您有多个链接,请使用类对它们进行分组:

HTML

 Click me 1_1 Click me 1_2 Click me 1_3 

jQuery的

 $(document).on('click', '.click', function (e) { var theID = $(this).attr('id'); $('html, body').animate({ scrollTop: $('#' + theID + '_div').offset().top }, 1000); return false; }); 

我这样做是为了你动态创建这些链接(因此委托)。 如果它们是静态的并且在页面加载期间不会改变,你可以使用$('.click').click(function()...而不是$(document).on('click', '.click', function()...

用户这一行

 $("#" + $(this).attr("id") + "_div").offset().top