2010-06-20 4 views
0

Joomla에서는 나라 플래그를 사용하지 않는 언어를 전환하면서 오전 언어를 jQuery의 replaceWith() 메소드를 사용하여 영어에서 아프리칸스로 전환합니다.jQuery로 텍스트를 변경 한 후 링크를 ​​클릭 할 수 없습니다.

문제 처음으로 영어 단어를 클릭하면 아프리칸스로 바꾸기 때문에 링크가 작동하지 않습니다. 그러나 다시 올 필요가있을 때 토글에서 작동합니다.

도움 주시면 감사하겠습니다. 여기에 내가이 일을해야한다고 생각하는 방법의 내 논리의 :

jQuery(document).ready(function($) { 
$(".item48").toggle(
    function() { 
    $(this).replaceWith("<li class='active item48' id='current'><a href='index.php?lang=af'><span>English</span></a></li>"); 
    }, 
    function() { 
    $(this).replaceWith("<li class='active item48' id='current'><a href='index.php?lang=en'><span>Afrikaans</span></a></li>"); 
    } 
); 

답변

1

당신은 click 핸들러 (.toggle()click 핸들러, 그리고 현재를 잃고있어)이있는 요소를 교체하고,하지만 당신은 정말 필요 이 같은 .html()를 사용하여, 내부 링크 을 변경 : 이벤트 핸들러가 남아 있지 않기 때문이다

jQuery(document).ready(function($) { 
    $(".item48").toggle(
    function() { 
     $(this).html("<a href='index.php?lang=af'><span>English</span></a>"); 
    }, 
    function() { 
     $(this).html("<a href='index.php?lang=en'><span>Afrikaans</span></a>"); 
    } 
); 
}); 
1

합니다. 대신 live을 사용할 수 있지만 더 좋은 방법은 href와 텍스트를 변경하는 것입니다.

jQuery(document).ready(function($) { 
$(".item48").toggle(
    function() { 
    $('a', this).attr('href', 'index.php?lang=en').find('span').text('English') 
    }, 
    function() {   
    $('a', this).attr('href', 'index.php?lang=af').find('span').text('Afrikaans') 
    } 
); 

$(this).html('HTML HERE')을 대신 사용하십시오.

관련 문제