如何在 jquery 中使用点击事件切换 ID?

How can I make a switch for ids with a click event in jquery?

我在这里找了很久,所以我不妨问一下。

我正在寻找 Jquery 中的一个开关,就像这样的伪代码:

switch($(idvariable).click)
{
     case $someid: break; //if the user clicked this id, something happens
     case $someotherid: break; // if the user clicked another id with name "someotherid"
     case $yetanotherid: break; // ditto
}

这可能吗?

预期行为如下:

如果点击跨度 1,就会发生一些事情。如果单击 span 2,则会发生其他情况。每个 span 都有一个 id,但这应该适用于任何元素,无论是 div span 还是其他什么。例如,如果单击具有给定 id 的 div,则发生 x,如果单击具有给定 id 的 span,则发生 y。

这样做的重点是不必做 1000 $("#blabla").click( function 等...重点是将它们分组,因为它们具有非常相似的行为。

在我的例子中,我想要做的是,如果单击具有给定 id 的给定元素,然后增加给定的隐藏元素值。如果单击具有另一个 id 的另一个元素,则会发生相同的情况。除此之外,可能还需要执行一些 CSS。

是的,使用class绑定点击事件(或列出所有id)

<button class='click-me' id='a1'>1</button>
<button class='click-me' id='a2'>2</button>
<button class='click-me' id='a3'>3</button>

$('.click-me').click(function () {
    switch ($(this).attr('id')) {
        case 'a1':
             break;
        case 'a2':
             break;
        case 'a3':
             break;
    }
});

试试这个

function callSwitch(value) {
    switch(value) {
        case 'someid':
        break;

        //etc..
    }
}

$(".switchclick").on('click', function() {
    var myid = $(this).prop('id');
    callSwitch(myid);
});
$(document).on('click', 'selector', function() {
    var id = $(this).attr('id');

    switch(id) {
        case 'home': 
            //
            break;
        case 'contact':
            //
            break;
        default:
            console.log('No id');
    }
});

您可以使用来自@Justinas 的代码,但它没有任何意义,因为此代码:

$('.click-me').click(function () {
    switch ($(this).attr('id')) {
        case 'a1':
             doSomethingA();
             break;
        case 'a2':
             doSomethingB();
             break;
        case 'a3':
             doSomethingC();
             break;
    }
});

可以并且应该(出于可读性目的)替换为:

$('#a1').click(doSomethingA);
$('#a2').click(doSomethingB);
$('#a3').click(doSomethingC);