2014-04-12 2 views
0

jQuery 플러그인의 일부로 다른 페이지로 연결되는 페이지에 앵커 태그에 클래스를 추가하고 싶습니다. 여기에 내가 지금까지 가지고있는 것이있다 :팝업 또는 새 창에서 앵커가 열리는 지 확인하십시오.

$('a').each(function(){ 
     url = $(this).attr("href");//grab the url 

     if(url != undefined && url.length > 0){    
      if(url.slice(0, 1) != "#"){//We don't want ones that are links within the same page 
       //We also dont want ones that are associted with popups 
       rel_check = $(this).attr("rel"); 
       if (!rel_check) {      
        //has it got any events attached to it? 
       } 
      } 
     } 
    }); 

그래서 나는 같은 페이지 내의 모든 링크를 걸러 낸다. 어떤 링크에 rel 속성이 있는지 확인합니다. 팝업과 관련된 일부 앵커를 제거합니다 (fancybox, greybox 및 lightbox는 rel 태그를 사용하지만 항상 그런 것은 아닙니다 ...). 그래서 여기에 내가 붙어 있습니다. 앵커가 팝업으로 열릴 수도 있지만 rel 속성은 없습니다. 이것을 어떻게 확인합니까? 요소에 연결된 모든 이벤트를 확인하는 것이 트릭을 수행 할 수 있다고 생각했지만 실제로 작동하지는 못합니다. 어떤 아이디어?

+0

트릭을 멋지게 했습니까? –

답변

0

target 속성을 확인하는 것이 좋습니다. 예를 들어 target="_blank" 링크가 새 탭에서 열립니다.

그러나 링크가 자바 스크립트로 관리되는 경우 새 탭/페이지를 열지 여부를 결정할 수 없습니다. 따라서 클릭 핸들러가있는 모든 링크를 제거하고 싶을 수 있습니다.

var eventObj = $(this).data('events'); 
if (!eventObj || !eventObj.click) { 
    // this element doesn't have a click handler. 
} 
관련 문제