2011-10-20 3 views
0

기본적으로 몇 개의 링크가 있습니다. 하나를 클릭하면 강조 표시된 클래스가 추가됩니다. 또한 클릭 할 때 강조 표시된 클래스의 링크를 숨겨야하는 버튼이 있습니다.jQuery를 통해 클래스로 동적으로 강조 표시된 요소 숨기기

이것은 사소하고 매우 간단해야하지만 내 코드가 작동하지 않는 이유를 이해할 수 없습니다. 또 다른 일은, 어떤 이유로 든, 링크가 바이올린을 한 번 클릭하는 것입니다. 그것이 jsfiddle로 무엇인지, 어떻게 외부 링크를 다루는 지 확실하지 않은가요? 요소가 다른 클래스 이름을받을 때 업데이트하지 않기 때문에 당신은 jQuery 오브젝트를 캐시하지 않아야 http://jsfiddle.net/ZPGe7/1/

답변

1

:

여기 내 바이올린입니다. 또한 링크가 뒤 따르지 않도록 event.preventDefault()을 사용하십시오. 코드에 $('.links a.highlight')을 직접 사용하십시오.

바이올린 : http://jsfiddle.net/ZPGe7/2/

$(function() { 
    $('.links a').live('click',function(ev){ 
      $('.links a.highlight').removeClass('highlight'); 
      $(this).addClass('highlight'); 
      ev.preventDefault(); //Prevent link from being followed 
    }); 
    $('#submit').live('click',function(){ 
     $('.links a.highlight').hide(); 
    }); 
});   
+0

감사합니다 롭이 좋은 작품! 따라서 false를 반환하면 기본값을 방지합니다. 차이점은 기본값을 방지하면 false를 반환하는 것은 클래스를 캐시하지 않는다는 것입니다. – Maverick

+0

흠 ... 원래 피들과 같이 선언 된 변수를 사용할 수없는 이유는 무엇입니까? – Maverick

+0

@Maverick 당신의 코드에서, 당신은'$ ('. links aHighlight') 셀렉터를 캐싱하고있었습니다. 이로 인해'click' 이벤트 ('# submit'에 묶여 있음)가 예상대로 동작하지 않게되었습니다 : a.highlight 요소의 "old"리스트는 비어 있었고 요소의 클래스 이름이 바뀌면 업데이트되지 않습니다. –

관련 문제