Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery滚动顶端成对元素_Javascript_Jquery_Html_Scrolltop - Fatal编程技术网

Javascript Jquery滚动顶端成对元素

Javascript Jquery滚动顶端成对元素,javascript,jquery,html,scrolltop,Javascript,Jquery,Html,Scrolltop,你好,我是编程新手,请原谅我的无知 我有几个元素,单击时使用ScrollTop jQuery函数滚动到指定点(在另一个引导nav选项卡中)。我有大约20个不同的元素,当点击时,它们可以完成这个任务。我已经写了20个不同的函数,它们看起来与下面的函数相似。我确信一定有办法存储这些对,并且有一个调用这些对的ScrollTop函数 $('#element').click(function(e) { e.preventDefault(); var target = $('#element2').

你好,我是编程新手,请原谅我的无知

我有几个元素,单击时使用ScrollTop jQuery函数滚动到指定点(在另一个引导nav选项卡中)。我有大约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文件有20个左右的函数,其中“#element”和“#element2”与“#alpha”、“#alpha2”、“#beta”、“#beta2”等子层

我应该使用数组吗?一节课?谢谢您的时间。

尝试将类“element”添加到每个元素id后跟数字的项目中-此时无需删除id

然后,将代码中的选择器更改为:

$('.element').click(function(e) {
如果使用类名而不是id,则当单击任何具有“element”类的项时,都会收到通知

如果您需要根据它是哪一个进行特殊津贴-在您的单个函数中,您可以通过检查它的id来检查您正在处理的是哪一个:

$(this).attr('id')
祝你好运

是的,您可以将相同的类添加到所有要启动的元素中,单击它们以减少代码,请参见HTML示例:

  • 元素文本
  • alpha文本
  • 测试版文本
向javascript代码添加两个对齐:

JS:

var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
$('.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);
    });
});
  • 然后用动态id(scrollToId,id)替换静态id
完整JS:

var id = $(this).attr('id'); //Id of clicked item
var scrollToId = '#'+id+"2"; //Id of scrolled to item
$('.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);
    });
});

你能更改标记吗?对不起,你是说在这篇文章上吗?我是说你的HTML,你能发布吗?