2013-12-23 6 views
3
jQuery('body').on('click', '.Home_Offer a', function(e){ 
    jQuery('a[href*="#"]').each(function(e){ 
     e.preventDefault(); 
    }); 
}); 

를 링크로 이동하지만 내가 때 클릭되는 해시 링크를 중지하려고 체크 만약 내가 위의 코드를

Uncaught TypeError: Object 0 has no method 'preventDefault'

CONSOLE.LOG

에 반환 링크가 클릭됩니다. 일부 링크는 값이 어디 #하지만 아무것도를하지 않는다 필요가 #있을 때

답변

9

필요가 클릭 된 앵커 요소를 테스트하는 경우 (this)

jQuery('body').on('click', '.Home_Offer a', function (e) { 
    if (/#/.test(this.href)) { 
    //if ($(this).is('[href*="#"]')) { 
     e.preventDefault(); 
    } 
}); 

each() 콜백은 같은 인덱스 및 항목을 수신 인수가 있으므로 e 클릭 핸들러는 preventDefault 메서드가없는 int 값입니다

0

별도의 기능을 시도하는 대신 onclick="return false"에 링크를 포함 시키십시오.

다른 방법으로 연결되지 않는 페이지의 클릭 가능한 부분에서 jQuery를 사용하여 실행하는 경우 css 선택기를 사용하여 원하는 div를 타겟팅하면 발생하려는 모든 사항을 onClick 할 수 있습니다 해당 UI를 유지하려고하는 경우 클릭 가능한 div에 대한 CSS로 커서를 포인터로 변경하십시오.

일반적으로 테스트를 위해 #을 사용하고 싶지만 SEO 나 봇과 잘 어울리는 것은 아닙니다

관련 문제