2011-04-22 5 views
0

안녕하세요 여러분, sitewide 포함 파일에 구현 된 smoothscroller 스크립트가 있습니다. 하지만 홈페이지에서 사용 중지하고 싶습니다. (Smoothscroller는 기본적으로 # 앵커를 사용하여 브라우저가 앵커 섹션으로 천천히 부드럽게 스크롤 할 수있게합니다. 점프 없음)Jquery 바인딩 해제에 약간의 문제가 있습니다.

다음은 키커입니다. smoothscroller에만 관련된 모든 클릭을 비활성화하고 싶지 않습니다. 나는 페이지의 smoothscroller 호출 후에 다음 퍼팅 시도했다, 이제

$(function(){ 
    $('a[href*=#]').click(function() { 

을 :

smoothscroller 코드는 다음처럼 시작

$('a[href*=#]').unbind('click'); 

을하지만 그 모든 클릭을 비활성화 링크. (그들은뿐만 아니라 클릭 동작을 사용하는 JQuery와 탭 시스템을 사용하는

나는 또한 클릭 함수에 변수를 할당하는 시도

:.이 때어 사용 후

var narf = $('a[href*=#]').click(function() { 

을 그리고 ...

$('a[href*=#]').unbind('click',narf); 

그러나 사람이 내가 놓친 게 분명 무슨 잘못이 되거 수 아무런 영향을 미치지 듯 당신은 이벤트 네임 스페이스 지정을 사용할 수

+0

당신이 그것을 차별화하려는 경우 일부 smoothscoller을 결합해야합니다 (클래스를 사용하거나'rel = ""'마음에와). 플러그인을 초기화 할 때 옵션이 있다는 것이 확실합니다. –

답변

2

:?!?

이것은 당신과 같이, 바인딩 해제하기 위해 spcific 이벤트 핸들러를 선택할 수 있습니다 16,

http://docs.jquery.com/Namespaced_Events

...

$('a[href*=#]').bind('click.thisone', function(){ 
    // Wacky stuff happens 
}).bind('click.thistwo', function(){ 
    // Crazy stuff happens 
}).bind('click.thisthree', function(){ 
    // Weird stuff happens 
}); 

// Only one is unbound 
$('a[href*=#]').unbind('click.thisone'); 
+0

@Sime - 왜 대신해야합니까? 다른 방법이 있습니까? –

+0

@ Jared "should"는 의무적 의무를 나타내며, "could"은 뭔가를 제안하는 데 사용됩니다. "할 수있다"는 여기에 더 적합합니다. –

+0

@Jared 대체 솔루션은 http://docs.jquery.com/Namespaced_Events (세 번째 코드 블록) –

관련 문제