2012-08-07 2 views
0

저는 jquery로 익숙하지 않은 html CSS 디자인 유형입니다. 이 코드 무엇인지 내가 볼 수로 사용할 링크의 기본 동작과 함께 사이트를 상속 :jquery와의 링크 별 기본 동작 링크 사용

$('a').click(function(event) { 
    event.preventDefault(); 

    var locationHref = window.location.href; 
    var elementClick = $(this).attr("href"); 
    var destination = $(elementClick).offset().top; 

    $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, 1000, function() { 
     window.location.hash = elementClick 
    }); 
     return false; 

가이 코드 덤비는없이 한 페이지 웹 사이트에 정상 링크를 추가해야합니다 (이 시차 스크롤 할 수 있습니다). 링크로이 링크를 할 수있는 방법이 있습니까?

나는 여기에 해결책을 보았지만 나는 그것들을 이해하지 못했다고 고백해야한다. 감사.

+1

나는 $ ('a') 대신 $ ('. myclass')를 사용할 수 있습니다. 클릭하고 위의 실행을 원하는 링크를 클래스에 추가하십시오 코드, 다른 하나는 정상 링크 여야합니다 ... –

+0

감사합니다, 우아하고 단순하고 성장하는 두통을 끝냈습니다. 사이트가 아주 작아서 구현하기가 번거롭지 않았습니다. Alex는 많은 것을 인정했습니다. –

+0

또는 그 머리를 뒤집고 불을 끄고 싶지 않은 항목에 클래스를 추가 한 다음'$ ('a : not (.myclass)')를 사용하십시오. – jaypeagi

답변

0

왜 이런 식으로 페이지의 모든 링크를 차단할 수 있는지 확실하지 않습니다. 불행히도 그러한 코드를 상속 받았습니다. 나는 당신이 당신을 의미하는지 확신 할 수 없었다. 코드를 건드릴 수 없거나 단지 원하지 않았다.

1) 특정 링크에 대한이 클릭 이벤트를 바인딩을 해제 :

는 이전의 경우 두 가지 옵션이 있습니다. 예를 들어, 당신은 컨테이너 내부에서 #container를 링크했다, 또는 모든 링크는 당신이 할 수있는, 특정 클래스, .class을했다 :

$('#container a').off('click'); 
$('a.class').off('click'); 

이러한 링크는 상속 클릭 이벤트 처리기의 자유 일 것이다.

유일한 문제는 모두 바인딩 해제하는 것입니다. 해당 링크에 연결된 이벤트 처리기를 클릭하십시오. 상속 된 이벤트는 네임 스페이스가 아니기 때문에 불가피합니다.

$('a').on('click', function() { location.href = $(this).attr('href'); }); 
0

방법에 대해 : 두 번째 옵션은 ...

2) 그럼에도 불구하고 링크의 HREF에 사용자를 전달하여 상속 된 핸들러의 기본 동작 방지를 우회 두 번째 클릭 이벤트 처리기를 설정하는 것입니다 이 특별 링크에 data-donthandle="true" 속성을 제공합니다. 그런 다음 jQuery에서이 속성을 확인하십시오. 특성이 있고 거짓 인 경우 이벤트 처리기 시작 부분에 return true; 만 입력하면됩니다.

이렇게하면 이미 제안 된대로 자바 스크립트를 통해 onclick을 통해보고 사용 중지 할 수 있습니다.

$('a').click(function(event) { 
    if($(this).attr('data-donthandle')) { 
     return true; 
    } 
    else { 
     event.preventDefault(); 
     //code here for handling clicks 
     alert('Stopped.'); 

     return false; 
    } 
    });​