传递动态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
…