如何在 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);
我在这里找了很久,所以我不妨问一下。
我正在寻找 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);