2011-11-23 3 views
0

저는 jQuery와 그 셀렉터를 처음 접했습니다.jQuery 클래스 선택기 및 클릭 이벤트. 누락 된 항목이 있습니까?

언어 전환에 많은 링크가 사용되었습니다. 언어는 languages 변수에 저장되며 현재 언어 색인 (lang)은 document에 저장됩니다. 하나의 링크를 클릭하면 올바르게 바뀝니다 (배열을 순환). 다른 링크는 그대로 유지됩니다. 왜? 당신의 클릭 기능에 당신이 this에 표시된대로

$('.lang').click(function() { 
    // Set link text to the current language and increment counter 
    $('.lang').text(languages[(($(document).data('lang') + 1) % languages.length)]); 
    $(document).data('lang', $(document).data('lang') + 1) 
}); 

필요 클릭 된 예는 현재 링크를 참조하기 때문에 $('.lang') 선택은 ... 내 모든 링크를 선택하도록되어

var languages = ['en', 'sl', 'at', 'de']; 
$(document).data('lang', 0); // Just for the first page load 

$('.lang').text(languages[($(document).data('lang'))]) 
    .attr('href', 'javascript:void(0)'); // Set href and text 

$('.lang').click(function() { 
    // Set link text to the current language and increment counter 
    $(this).text(languages[(($(document).data('lang') + 1) % languages.length)]); 
    $(document).data('lang', $(document).data('lang') + 1) 
}); 

<a class="lang"></a> 
<a class="lang"></a> 

답변

2

그것은이다 이 jsfiddle에

http://jsfiddle.net/WhtqR/

당신은 그 $('.lang')w에서 정확 해당 클래스의 모든 링크를 선택하십시오. 코드에서 각 링크 핸들러에 클릭 기능을 적용합니다. 그러나 click에서 실행되는 함수는 this이 아닌 해당 태그가 필요합니다.

+0

완벽한 시간을 가져 주셔서 감사합니다! – gremo