Javascript 如何使html中的多个按钮指向同一个JS函数

Javascript 如何使html中的多个按钮指向同一个JS函数,javascript,jquery,html,Javascript,Jquery,Html,我想让“div#Welcome a”和“div#familize a”指向以下JS代码: e.preventDefault(); var itemClicked = $(this); var id = itemClicked.attr("id"); id = id.replace(/\D/g,''); slider.goToSlide(id); return false; 现在我有这个: $('div#Welcome a').click(func

我想让“div#Welcome a”和“div#familize a”指向以下JS代码:

    e.preventDefault();
    var itemClicked = $(this);
    var id = itemClicked.attr("id");
    id = id.replace(/\D/g,'');
    slider.goToSlide(id);
    return false;
现在我有这个:

$('div#Welcome a').click(function(e){
这是:

$('div#Familiarize a').click(function(e){
对于,请单击以转到指定的代码。我想知道是否有一种方法可以让我想与之链接的任何东西都不必每次都创建一个新函数。有我可以贴上的特定标签的ID吗?
提前感谢。

将代码块生成命名函数,并将其传递给事件处理程序:

function myEventHandler(e) {
    e.preventDefault();
    var itemClicked = $(this);
    var id = itemClicked.attr("id");
    id = id.replace(/\D/g,'');
    slider.goToSlide(id);
    return false;
}

$('div#Familiarize a').click(myEventHandler);
$('div#Welcome a').click(myEventHandler);
或者正如@mark.hch和@Huangism所指出的,您也可以使用逗号分隔的选择器:

$('div#Familiarize a, div#Welcome a').click(myEventHandler);

将代码块设置为命名函数,并将其传递给事件处理程序:

function myEventHandler(e) {
    e.preventDefault();
    var itemClicked = $(this);
    var id = itemClicked.attr("id");
    id = id.replace(/\D/g,'');
    slider.goToSlide(id);
    return false;
}

$('div#Familiarize a').click(myEventHandler);
$('div#Welcome a').click(myEventHandler);
或者正如@mark.hch和@Huangism所指出的,您也可以使用逗号分隔的选择器:

$('div#Familiarize a, div#Welcome a').click(myEventHandler);

通过用逗号分隔多个选择器,可以将它们一起使用

$('div#Familiarize a, div#Welcome a').click(function(e) {
    e.preventDefault();
    var itemClicked = $(this);
    var id = itemClicked.attr("id");
    id = id.replace(/\D/g,'');
    slider.goToSlide(id);
    return false;
});

虽然为了简化事情,我建议给所有相关的
DIV
s一个公共类,并在选择器中使用:
$('DIV.tab a')。单击(…)
可以使用多个选择器,方法是用逗号分隔它们

$('div#Familiarize a, div#Welcome a').click(function(e) {
    e.preventDefault();
    var itemClicked = $(this);
    var id = itemClicked.attr("id");
    id = id.replace(/\D/g,'');
    slider.goToSlide(id);
    return false;
});

虽然为了简化事情,我建议给所有相关的
DIV
s一个公共类,并在选择器中使用:
$('DIV.tab a')。单击(…)
也可以给每个DIV一个相同的类,并将处理程序附加到该类

<div class="thisclass">

$('.thisclass').click(function (e) {

}

$('.thisclass')。单击(函数(e){
}

您还可以为每个div指定相同的类,并将处理程序附加到该类

<div class="thisclass">

$('.thisclass').click(function (e) {

}

$('.thisclass')。单击(函数(e){
}

您也可以使用逗号分隔的选择器-
$('div#欢迎a,div#熟悉a')。单击(函数(e){…};
或者您可以向两个锚点添加一个类并绑定到该类fyi,您可以消除前4行代码,只需执行
slider.goToSlide(this.id.replace(/\D/g'))
。不需要第一行,因为
返回false;
会处理它。您也可以使用逗号分隔的选择器-
$('div#欢迎a,div#熟悉a')。单击(函数(e){…};
或者您可以向两个锚点添加一个类并绑定到该类fyi,您可以删除前4行代码,只需执行
slider.goToSlide即可(this.id.replace(/\D/g')
。不需要第一行,因为
返回false;
处理它。
$('div#欢迎a,div#熟悉a')
给你保存一些字符难道没有一种方法可以让我做一个if或什么来验证某些点击吗?你能更具体一点吗@Kingrune?有点像@Barmar所说的那样,你可以在div中添加一个类,但这可以直接添加到a标记吗?举个例子“一个a标记被点击检查,看看它是否有uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu给你保存一些字符难道没有一种方法可以让我做一个if或什么来验证某些点击吗?你能更具体一点吗@Kingrune?有点像@Barmar所说的那样,你可以在div中添加一个类,但这可以直接添加到a标记吗?举个例子“单击检查a标记以查看它是否具有________;类,以及它是否运行了您可以使用的函数
if(itemClicked.hasClass('whateverclass')){//do stuff}