Javascript 有没有一种方法可以合并jQuery函数,这些函数在不同的类和ID上执行相同的操作
我的守则如下:Javascript 有没有一种方法可以合并jQuery函数,这些函数在不同的类和ID上执行相同的操作,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我的守则如下: $('.contact_btn').click(function(){ $('.modal').modal('hide'); $('html, body').animate({ scrollTop: $("#contact").offset().top }, 1000); }); $('.insurance_btn').click(function(){ $('.modal').modal('hide'); $('
$('.contact_btn').click(function(){
$('.modal').modal('hide');
$('html, body').animate({
scrollTop: $("#contact").offset().top
}, 1000);
});
$('.insurance_btn').click(function(){
$('.modal').modal('hide');
$('html, body').animate({
scrollTop: $("#insuranceFormTop").offset().top
}, 1000);
});
$('.bmw_btn').click(function(){
$('.modal').modal('hide');
$('html, body').animate({
scrollTop: $("#bmwContactTop").offset().top
}, 1000);
});
有没有办法只生成一个函数,该函数接受类并作用于相应的id。函数simplefunction(classname,id){
function simplefunction(classname,id){
$('.'+classname).click(function(){
$('.modal').modal('hide');
$('html, body').animate({
scrollTop: $("#"+id).offset().top
}, 1000);
});
}
<div class="relevant_button" id="respective_ID" onclick="simplefunction(this.getAttribute('class'),this.id)">
$('..+classname)。单击(函数(){
$('.modal').modal('hide');
$('html,body')。设置动画({
scrollTop:$(“#”+id).offset().top
}, 1000);
});
}
你可以这样做
$('.contact_btn').click(function(){
animate('contact');
});
function animate(id) {
$('.modal').modal('hide');
$('html, body').animate({
scrollTop: $("#"+id).offset().top
}, 1000);
}
这对您很有用。如果我这样做,仍然意味着我必须编写三次代码。我不想那样做。我需要一个接受divs类并根据它进行操作的代码。比如说。那就是我试过的。如果有帮助,请检查我在下面的答案中留下的评论。我真的很感谢你在这方面的帮助,我可以看到这个答案真的很接近我想要实现的。哈哈,看起来很有趣。你能不能编辑一下,让它使用dosomething功能?这真的很有帮助,非常感谢你的帮助。我试过使用这个功能,但它不起作用。我忘记了在尝试这个函数之前保存js文件,我测试的是我以前的原始函数。我在onclick上附加了另一个函数,控制台在滚动到相应的id和close的top上抛出一个未定义的错误e_modal function将函数名从这样一个乏味的名称更改为简单的名称,并查看编辑的代码,将id与类一起传递。只需创建一个接受类和id的函数,用相应的对称它三次。@Berji本质上这是我想要做的,但我对jQuery非常陌生,在实现这一点上遇到了很多困难。这与jQuery无关。它只是一个执行javascript代码(使用jQuery库)的javascript函数。@Bergi可耻的是,我不知道如何实现这一点。将重复的代码放在
函数名(){…}
,,然后为每个重复中不同的小事情添加参数,并使用这些变量而不是值。然后调用该函数。