2012-06-15 2 views
2

나는 며칠 동안이 벽으로 내 머리를 벽에 치고 있었다. 나는 클릭 할 때 해당 개별 항목을 div로 옮기는 항목 목록을 가지고 있습니다. 어떤 항목을 클릭했는지에 따라 내 목록의 다음 항목과 이전 항목 (json)을 찾으려고합니다.json 배열에서 다음 및 이전 값으로 이동하려면 어떻게해야합니까?

나는 이것에 대해 처음이야. 그리고 나는 내가 시도한 것에 상관없이 이것을 제대로 수행 할 수 없다.

여기에 jsfiddle code입니다. 감사!

HTML :

<audio id="audio-player" name="audio-player" src="" ></audio> 

<a id="next-bt" href="#"> 
<div class="player-musicnav-ff-column3"> 
    <ul class="musicnav-ff"> 
     <li class="ff">NEXT</li> 
    </ul> 
</div> 
</a> 

<a id="prev-bt" href="#"> 
<div class="player-musicnav-ff-column3"> 
    <ul class="musicnav-ff"> 
     <li class="ff">PREV</li> 
    </ul> 
</div> 
</a> 

<br/> 
<br/> 
<div id="player-digital-title"> 
</div> 
<br/> 
<br/> 
<a href="#" id='player-handwriting-title'></a>​​ 

자바 스크립트 JQuery와 :

$(document).ready(function(){ 

    var treeObj = {"root":[{"id":"1","trackName":"Whippin Post"},{"id":"2","trackName":"Sweet Caroline"},{"id":"3","trackName":"Tears in Heaven"},{"id":"4","trackName":"Ain't She Sweet"},{"id":"5","trackName":"Octopus' Garden"},{"id":"6","trackName":"Teen Spirit"},{"id":"7","trackName":"Knockin on Heaven's Door"}]}; 

    var $ul = $("<ul></ul>");  
    $.each(treeObj.root,function(i,v) { 
     $ul.append(
      $("<li></li>").append(     $("<a></a>") 
                .attr({"href":v.id,"data-file":v.trackFile}) 
       .html(v.trackName) 
                ) 
      ); 

    }); 
    $("#player-handwriting-title").empty().append($ul); 

    $("#player-handwriting-title a").click(function() { 
     var name = $(this).html(), 
      filename = $(this).attr("data-file"); 
      filename2 = "upload-form/upload/" + filename; 
     $('#player-digital-title').html($(this).html()); 

     document.getElementById('audio-player').src = filename2; 
     $("#audio-player")[0].play(); 
     return false; 

    }); 

var myID = 0; 
$("#next-bt").click(function() { 
document.getElementById('player-digital-title').innerHTML = treeObj.root[++myID].trackName ; 
    }); 

var mylease = 6; 
$("#prev-bt").click(function() { 
document.getElementById('player-digital-title').innerHTML = treeObj.root[--mylease].trackName ; 
    }); 


}); 

+0

는 항상 순차적으로 ID를해야합니까? – kiranvj

+0

아니요. 그들은 꽤 어색해하게 될 것입니다. 플러스 Thejson 목록은 데이터베이스에서 생성 될 때마다 다양한 길이가됩니다. – Johan

+0

순서가 맞지 않으면 ++ myID와 --mylease는 어떻게 작동할까요? – kiranvj

답변

0

추가 바이올린 같은

http://jsfiddle.net/kabichill/JzL97/

체크 out..Hope u는 예상의 와트 ...

+0

대단하군요! 한 가지. JSON 목록은 끊임없이 변화하는 데이터베이스에서 가져옵니다. 다음 단추와 이전 단추가 어떻게 목록 길이를 바꿀 수 있는지 알 수 있습니까? – Johan

+0

정적 값을 사용하는 대신 동적 값을 사용하고 동일한 논리를 적용합니다. –

+0

나는 바이올린 친구를 업데이트하여 동적 체크 아웃을 수행했습니다. –

0

시도 뭔가

var myID = 0; 
$("#next-bt").click(function() { 
    myID++; 
    if(myID > treeObj.root.length) { myID = 0; } 
document.getElementById('player-digital-title').innerHTML = treeObj.root[++myID].trackName ; 
    }); 

var mylease = 6; 
$("#prev-bt").click(function() { 
    myID--; 
    if(myID < 0) { myID = treeObj.root.length; } 
document.getElementById('player-digital-title').innerHTML = treeObj.root[--mylease].trackName ; 
    }); 
관련 문제