在jQuery/Javascript中将id值与事件值映射
我是javascript/jQuery新手,我正试图找到一种最智能的方式,根据id是否处于活动状态来触发事件:在jQuery/Javascript中将id值与事件值映射,javascript,jquery,events,map,Javascript,Jquery,Events,Map,我是javascript/jQuery新手,我正试图找到一种最智能的方式,根据id是否处于活动状态来触发事件: <ul class="tabs"> <li id="1" class="active"><a href="#"></a></li> <li id="2"><a href="#"></a></li> <li id="3"><a href="#"></a
<ul class="tabs">
<li id="1" class="active"><a href="#"></a></li>
<li id="2"><a href="#"></a></li>
<li id="3"><a href="#"></a></li>
<li id="4"><a href="#"></a></li>
</ul>
这变得有点困难,因为规则如下:
如果id=1处于活动状态,则id=2时触发警报(“A”)处于活动触发状态
id=3时的警报(“B”)为激活状态,id=4时的触发警报(“C”)为激活状态
触发警报(“D”)
我可以使用什么函数将1与A、2与B等映射
谢谢
var functionsMap = {
"id1": function() { ... },
"id2": function() { ... },
...
};
$('.tabs li').on('click', function() {
var id = $(this).attr('id');
functionsMap[id]();
});
当然,为具有这样id的元素添加检查函数,等等。试试这个
var call_arr = ['a', 'b', 'c', 'd'];
$('click a random button').click(function(){
var ind = $('li.active').index();
alert(call_arr[ind]);
});
var data = ['a', 'b', 'c', 'd'];
$('.tabs li').click(function(){
alert(data[$(this).index()].toUpperCase());
});
1.不要将数字用作id您可以在
li
中添加一个单击
侦听器,调用一个方法,在该方法中,如果id具有类,则给出一个警报语句良好的提示,但我更关心如何映射值:1与a、2与B等。这很好,但是有不同的按钮使li处于活动状态。这可以独立于单击事件吗?@user2441947您可以将其封装在函数中并调用该函数。谢谢,但这里的关键是li处于活动状态,而不是“单击”。我们可以让它独立于点击事件吗?当然可以,只需运行这样的代码:functionsMap[$('.tabs.active').attr('id'))()很好,谢谢!最后一个愚蠢的问题是:当您编写“id1”:function(){…},
,应该用什么替换…
?应该有您想要的任何逻辑。例如,第一个函数为警报('A'),第二个函数为警报('B'),第三个函数为动画,等等。