2011-04-07 5 views
0

주위를 둘러 보았습니다 &이 답변을 볼 수 없으므로 JS와 초보자가 되니 나와 함께 곰!기본 자바 스크립트/jQuery : 변수를 반환하는 방법

저는 Coda style slider from jQuery4Designers을 사용하는 소규모 사이트 디자인 작업을하고 있습니다. 디자인의 일부는 활성 탐색 링크 앞에 밑줄이 붙는 것입니다. 그래서 나는 변수를 생성하고 슬라이더에 대한 JS에서 기존 함수를 업데이트하려고했습니다. 이제이 작품 : 내가 가진

var activeLink = $('#nav li a.selected').text(); 

// handle nav selection 
function selectNav() { 
    $(this) 
     .parents('ul:first') 
      .find('a') 
       .removeClass('selected') 
       .text(activeLink) //this ensures the non-active link has no underscore 
      .end() 
     .end() 
     .addClass('selected') 
     .text("_" + activeLink); //this adds the underscore to the active link 
} 

문제는이 모든 내가 varible 새로운 a.selected 표시하도록 업데이트되지 않습니다 생각 원래 활성 링크를 연결할 수 있다는 것입니다. 내 첫 번째 활성 링크 "항목 하나"라면 그래서 나는을 진행하는 방법을 나는 확실하지 오전 같은 사람이 어떻게 이것을 달성하기 위해 말해 줄 수 바랍니다 모든 li

은 "항목 하나"를 표시하는 전체 목록을 가지고 결국 .

미리 감사드립니다. 추가 정보가 있으면 알려 주시기 바랍니다.

조지

답변

1

글쎄, 당신은 설정 activeLink에 "항목 하나"다음 ul:first a의 모든 요소에 제공합니다. 그게 당신 코드가하는 것입니다.

// handle nav selection 
function selectNav() { 
    $(this) 
     .parents('ul:first') 
      .find('a') 
       .removeClass('selected') 
       .text(function(index, text) { 
        return text.replace(/^_/, ''); 
       }) //this ensures the non-active link has no underscore 
      .end() 
     .end() 
     .addClass('selected') 
     .text(function(index, text) { 
      return "_" + text; 
     }); //this adds the underscore to the active link 
} 

안된 대신이 변수

는 동적 사실 you can give .text() a function 것을 사용하여 각 원소의 기존 값을 조정하세요. 버그가있을 수 있습니다.

+0

하는 데 도움이 내 응답 지연 미안 희망

function selectNav() { $(this) .parent('li') .find('a') .addClass('selected') .text("_" + activeLink) .parent('li') .siblings('li') .find('a') .removeClass('selected') .text(activeLink) } 

도움이 될 것입니다 생각하실 수 있습니다! 제안 해 주셔서 감사합니다. 개념은 이해가된다 (나를 위해 안심하고있다!!). 다시 한 번 감사드립니다 – Sheixt

+0

Tomalak이 제안한 코드를 시험해 보았습니다. (전체 테스트가 보류 중임) 제대로 작동하는 것 같습니다! 고마워. 내가 이해하기 힘든 한 가지는 'text.replace (/^_ /,' ');'함수 내에서의 반환입니다. 그러나 나는 더 읽을 때 그것이 내게 올 것이라고 확신한다. 다시 한 번 감사드립니다 - 많이 감사합니다 !!! – Sheixt

+0

@Sheixt : 문제 없습니다. 내가 돌려주는 것은'String.replace (, )'함수의 결과이며, 문자열 ('^')의 시작 부분에있는'_'의 인스턴스를 빈 문자열'' ''로 대체합니다. 즉, 하나의 선행 밑줄을 제거하면됩니다. –

0

첫 줄에 activeLink를 저장하면 현재 선택된 li가 저장됩니다.

"var activeLink ....."함수를 selectNav() 함수 내에서 이동하십시오.

+1

그는 여전히 한 변수를 _every_ 링크에 할당합니다. 그 값을 변경해도 문제가 해결되지는 않습니다. –

0

내가 당신의 질문 혼란 스러워요,하지만 내 최선을 나는 이것이 내가이 헤이

관련 문제