[英]Pass dynamic id value jquery div jump to function
我被困在jQuery div跳到问题。 问题是我正在创建动态<a href="" id="1_1"></a>
而动态div也说<div id="1_1_div"></div>
我正在使用以下jquery函数滚动到特定的div
<script>
$(document).ready(function (){
$("#click").click(function (){
alert ("test");
//$(this).animate(function(){
$('html, body').animate({
scrollTop: $("#div1").offset().top
}, 1000);
//});
});
});
</script>
我的问题是如何将动态ID传递给$("")
我们将不胜感激。
字符串串联:
$("#" + this.id + "_div").offset().top
请注意,不需要创建唯一的ID,因为具有树状结构的DOM对提供了许多遍历和选择目标元素的方法。
由于您是动态生成元素的,因此您还应该委派事件,因此可以向元素添加类并使用on
方法:
$('#aStaticParentElement').on('click', '.anchors', function() {
// TODO:
// select the target element either by traversing
// or by using an identifier
});
$(document).ready(function (){
$(".click").click(function (){
alert ("test");
var divID = '#' + $(this).attr('id') + '_div';
$('html, body').animate({
scrollTop: $(divID).offset().top
}, 1000);
});
});
并添加<a class="click" ...
首先,由于您具有多个链接,因此请使用一个类来对它们进行分组:
<a href="#" id="1_1" class="click">Click me 1_1</a>
<a href="#" id="1_2" class="click">Click me 1_2</a>
<a href="#" id="1_3" class="click">Click me 1_3</a>
$(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
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.