在事件中获取阵列中的当前位置?

时间:2014-10-24 13:20:16

标签: jquery

我在ul上有点击事件。使用$.inArray我想获得li的当前索引。有了这个,我就可以为正确的div制作动画。我的标记是这样的:

<div class="nav">
    <ul>
        <li></li>
        <li></li>
    </ul>
</div>
<div class="sideways">
</div>
<div class="sideways">
</div>

等等。你可以滑过&#34;横向&#34; div和ul可以通过导航导航到div。现在我的代码看起来像这样:

$('.nav ul li').click(function(){
    $this = $(this);
    k = $.inArray($this, $('.nav ul li'));
});

k总是返回-1。为什么会这样?为什么它不返回当前索引?

2 个答案:

答案 0 :(得分:5)

如果您想点击索引,为什么不使用.index()

$('.nav ul li').click(function () {
    alert($(this).index());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="nav">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</div>
<div class="sideways"></div>
<div class="sideways"></div>

答案 1 :(得分:0)

如果我理解正确,你需要这样的东西:

var items = $('.nav ul li');

items.click(function(){
    k = items.index(this);
});