2017-08-23 73 views
0

所以我想單擊列表中的一個項目並獲取該項目的索引。點擊一個項目將顯示內容元素。點擊那個內容元素應該給我我首先點擊的項目的(索引+1)。到目前爲止,我得到'NaN'錯誤。我究竟做錯了什麼?傳遞正常的字符串值似乎工作。從第一個函數返回變量值並在第二個函數中使用它

<div class="item-list"> 
    <div class="item">Item1</div> 
    <div class="item">Item2</div> 
</div> 
<div class="hidden" style="display: none">Content</div> 

$(function() { 
    var thisIndex; 
    $('.item-list .item').click(function(event) { 
     var thisIndex = $('.item-list .item').index(this) 
     $('.hidden').css('display', 'block') 
    }); 
    $('.hidden').click(function(event) { 
     var nextIndex = thisIndex + 1; 
     console.log(nextIndex) 
    }); 
}) 

爵士小提琴https://jsfiddle.net/zv0Lza6n/4/

+1

是什麼讓你認爲在一個函數中聲明的變量可以在另一個函數中訪問?如果你想使用外部變量,從函數中刪除'var'。 – adeneo

+0

https://jsfiddle.net/zv0Lza6n/5/ – adeneo

回答

0

你聲明的點擊功能之外你thisIndex變量,然後再點擊功能裏面。聲明一次,然後在函數中爲其分配一個值。

$(function() { 
    var thisIndex; 

    $('.item-list .item').click(function(event) { 
     thisIndex = $('.item-list .item').index(this); 
     $('.hidden').css('display', 'block'); 
    }); 
    $('.hidden').click(function(event) { 
     var nextIndex = thisIndex + 1; 
     console.log(nextIndex); 
    }); 
}); 

你也錯過了幾個分號。

相關問題