Javascript Jquery ScrollTop 配对元素
Javascript Jquery ScrollTop paired elements
您好,我是编程新手,请原谅我的无知。
我有几个元素,单击它们时使用 ScrollTop jQuery 函数滚动到指定点(在另一个 bootstrap 导航选项卡中)。我有大约 20 个不同的元素,单击它们即可执行此操作。我已经编写了 20 个看起来与下面的函数相似的不同函数。我确定必须有一种方法来存储这些对,并有一个调用这些对的 ScrollTop 函数。
$('#element').click(function(e) {
e.preventDefault();
var target = $('#element2').closest('.tab-pane').attr('id');
showTab(target);
setTimeout(function() {
$('html, body, nav').animate({
scrollTop: $("#element2").offset().top -100
}, 500);
}, 500);
});
所以我的 js 文件有大约二十个这个函数,其中“#element”和“#element2”被替换为“#alpha”“#alpha2”,“#beta”“#beta2”等。 ..
我应该使用数组吗? class?谢谢你的时间。
尝试将 class "element" 添加到每个具有元素 ID 后跟数字的项目 - 此时无需删除 ID。
然后,将代码中的选择器更改为:
$('.element').click(function(e) {
如果您使用 class 名称而不是 ID,当任何 class 为 "element" 的项目被点击时,您会收到通知。
如果您需要根据它是哪一个进行特殊津贴 - 在您的单一函数中,您可以通过检查它的 id 来检查您正在处理的是哪一个:
$(this).attr('id')
祝你好运!
是的,您可以将相同的 class 添加到您想要的所有元素中点击它们,以减少代码,请参阅 HTML 示例:
<span class="scrollTop" id="element">element text</span>
<span class="scrollTop" id="alpha">alpha text</span>
<span class="scrollTop" id="beta">beta text</span>
向 javascript 代码添加两行:
JS :
var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
- 之后将静态 ID 替换为动态 ID (scrollToId, id)。
完整 JS :
$('.scrollTop').click(function(e) {
e.preventDefault();
var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
var target = $(scrollToId).closest('.tab-pane').attr('id');
showTab(target);
setTimeout(function() {
$('html, body, nav').animate({
scrollTop: $(scrollToId).offset().top -100
}, 500);
});
});
您好,我是编程新手,请原谅我的无知。
我有几个元素,单击它们时使用 ScrollTop jQuery 函数滚动到指定点(在另一个 bootstrap 导航选项卡中)。我有大约 20 个不同的元素,单击它们即可执行此操作。我已经编写了 20 个看起来与下面的函数相似的不同函数。我确定必须有一种方法来存储这些对,并有一个调用这些对的 ScrollTop 函数。
$('#element').click(function(e) {
e.preventDefault();
var target = $('#element2').closest('.tab-pane').attr('id');
showTab(target);
setTimeout(function() {
$('html, body, nav').animate({
scrollTop: $("#element2").offset().top -100
}, 500);
}, 500);
});
所以我的 js 文件有大约二十个这个函数,其中“#element”和“#element2”被替换为“#alpha”“#alpha2”,“#beta”“#beta2”等。 ..
我应该使用数组吗? class?谢谢你的时间。
尝试将 class "element" 添加到每个具有元素 ID 后跟数字的项目 - 此时无需删除 ID。
然后,将代码中的选择器更改为:
$('.element').click(function(e) {
如果您使用 class 名称而不是 ID,当任何 class 为 "element" 的项目被点击时,您会收到通知。
如果您需要根据它是哪一个进行特殊津贴 - 在您的单一函数中,您可以通过检查它的 id 来检查您正在处理的是哪一个:
$(this).attr('id')
祝你好运!
是的,您可以将相同的 class 添加到您想要的所有元素中点击它们,以减少代码,请参阅 HTML 示例:
<span class="scrollTop" id="element">element text</span>
<span class="scrollTop" id="alpha">alpha text</span>
<span class="scrollTop" id="beta">beta text</span>
向 javascript 代码添加两行:
JS :
var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
- 之后将静态 ID 替换为动态 ID (scrollToId, id)。
完整 JS :
$('.scrollTop').click(function(e) {
e.preventDefault();
var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
var target = $(scrollToId).closest('.tab-pane').attr('id');
showTab(target);
setTimeout(function() {
$('html, body, nav').animate({
scrollTop: $(scrollToId).offset().top -100
}, 500);
});
});