Javascript 高效的jQuery/JS—避免再次复制粘贴相同的代码&;再一次
我需要写一个高效的代码,以保持它的简单&代码文件小,而且我希望在未来的代码中使用我希望从这里获得的知识 更新:我的示例是浏览器窗口侧的固定“按钮”&如果您单击其中一个按钮,它将带您进入具有相同Javascript 高效的jQuery/JS—避免再次复制粘贴相同的代码&;再一次,javascript,jquery,Javascript,Jquery,我需要写一个高效的代码,以保持它的简单&代码文件小,而且我希望在未来的代码中使用我希望从这里获得的知识 更新:我的示例是浏览器窗口侧的固定“按钮”&如果您单击其中一个按钮,它将带您进入具有相同ID的div(查看下面的代码) 图像: //Smooth Scroll Menu Links jQuery('.div1').on('click', function(e) { e.preventDefault(); jQuery('html,body').animate({scroll
ID
的div(查看下面的代码)
图像:
//Smooth Scroll Menu Links
jQuery('.div1').on('click', function(e) {
e.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top-100}, 800);
});
//I have to copy-paste it 1000 times & only change the ".div1" to something else
//Note that I need a solution with different class names, not "div1", "div2" etc but e.g "location", "potato", "car" etc.
我的代码示例:
//Smooth Scroll Menu Links
jQuery('.div1').on('click', function(e) {
e.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top-100}, 800);
});
//I have to copy-paste it 1000 times & only change the ".div1" to something else
//Note that I need a solution with different class names, not "div1", "div2" etc but e.g "location", "potato", "car" etc.
如何在不为每个div编写相同行的情况下使此代码正常工作?
必须有一种方法可以从您单击的项目中获取
class
,然后滚动到具有相同名称ID
的项目,对吗?或者在这种情况下使用任何其他方法来缩短代码-否则就是复制粘贴大型文件节。试试这个我希望能与您一起使用:
jQuery('div').on('click', function(e) {
e.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top-100}, 800);
});
请注意:此功能将应用于第页的所有div尝试此功能,我希望可以与您一起使用:
jQuery('div').on('click', function(e) {
e.preventDefault();
jQuery('html,body').animate({scrollTop:jQuery(this.hash).offset().top-100}, 800);
});
注意:此函数将应用于页面中的所有div您可以为每个按钮赋予一个类,以便捕获所有按钮,而不是通过查看单击按钮的属性转到要滚动到的元素:) HTML
示例:您可以为每个按钮指定一个类,以便捕获所有按钮,然后通过查看单击按钮的属性转到要滚动到的元素:) HTML
示例:我认为解决方案不止一个。如果不想修改HTML,则需要一个条件来确定单击的元素是否为“活动”元素: 如果您“可以”修改HTML,明智的做法是向“活动”元素(即按钮)添加一些属性,这样您就知道它们可以滚动页面,或者将它们放在容器中。您添加的属性可能是一个类或任何其他有效属性(我建议使用“rel”,但可能是@Iliya Reyzis发现的“data”,他按类选择并滚动到“data”),然后通过它选择它们:
<div class="div1" rel="mybutton">div1</div>
jQuery("[rel='mybutton']").on('click', function(e) {
var id = $(this).attr('class');
var scrollto = $('#' + id);
e.preventDefault();
jQuery('html,body').animate({scrollTop:scrollto.offset().top-100}, 800);
});
div1
jQuery(“[rel='mybutton']”)。在('click',函数(e)上{
var id=$(this.attr('class');
var scrollto=$(“#”+id);
e、 预防默认值();
jQuery('html,body').animate({scrollTop:scrollto.offset().top-100},800);
});
希望能有帮助 我认为不止是一个独特的解决方案。如果不想修改HTML,则需要一个条件来确定单击的元素是否为“活动”元素: 如果您“可以”修改HTML,明智的做法是向“活动”元素(即按钮)添加一些属性,这样您就知道它们可以滚动页面,或者将它们放在容器中。您添加的属性可能是一个类或任何其他有效属性(我建议使用“rel”,但可能是@Iliya Reyzis发现的“data”,他按类选择并滚动到“data”),然后通过它选择它们:
<div class="div1" rel="mybutton">div1</div>
jQuery("[rel='mybutton']").on('click', function(e) {
var id = $(this).attr('class');
var scrollto = $('#' + id);
e.preventDefault();
jQuery('html,body').animate({scrollTop:scrollto.offset().top-100}, 800);
});
div1
jQuery(“[rel='mybutton']”)。在('click',函数(e)上{
var id=$(this.attr('class');
var scrollto=$(“#”+id);
e、 预防默认值();
jQuery('html,body').animate({scrollTop:scrollto.offset().top-100},800);
});
希望能有帮助 您应该为每个div添加一个类并查询它们$(“.scroll元素”)。。如果您想按原样使用它,您可以选择所有具有id的div,并以单词“div”开头。。像$(“div[id^='div'])@IliyaReyzis,如果我把所有的“按钮”放在一个
&如果单击了div
,那么使用jQuery检索子div的类(特定按钮)并在我的代码中使用它会怎么样?这有意义吗?然后没有太多的点击事件-只有一个带有类按钮的div
。类似这样的吗?谢谢你,伙计!我只是尝试编写类似的代码&jQuery很简短。复制它作为答案&我接受它。你应该为每个div添加一个类并查询它们$(“.scroll元素”)。。如果您想按原样使用它,您可以选择所有具有id的div,并以单词“div”开头。。像$(“div[id^='div'])@IliyaReyzis,如果我把所有的“按钮”放在一个
&如果单击了div
,那么使用jQuery检索子div的类(特定按钮)并在我的代码中使用它会怎么样?这有意义吗?然后没有太多的点击事件-只有一个带有类按钮的div
。类似这样的吗?谢谢你,伙计!我只是尝试编写类似的代码&jQuery很简短。复制它作为答案&我会接受它。如果ID-s
与“土豆”、“汽车”或“家”完全不同,我需要一个通用的解决方案,就像ID
所称的那样。如果ID-s
与“土豆”、“汽车”或“家”完全不同,我需要一个通用的解决方案,就像ID
所称的那样。