2012-02-21 3 views
4

동위 원소를 기반으로 한 페이지를 만들고 있습니다. 기본 디스플레이가 수평으로 스크롤되며 jquery.mousehweel script을 사용하여 기본 마우스 휠 동작을 수행했습니다. 기사를 열었을 때 사용자에게 기본 동작을 되돌리고 가로로 스크롤하지 못하게하려고하지만 어떻게해야 하는지를 알 수 없습니다.jquery.mousewheel을 임시로 바인딩 해제하는 방법

여기에 예를주는 jsfiddle 링크입니다 :

http://jsfiddle.net/DJVX2/529/

당신이 상자를 클릭

, 그것은 아주 키가 큰 얻을 수 있지만, 당신은 마우스 휠을 사용하는 경우 그것은 여전히 ​​좌우로 페이지면을 스크롤합니다. 상자가 크면 사용자가 세로로 스크롤 할 수있게하고 싶습니다.

도움 주셔서 감사합니다.

참고 : 마우스가 #container div 위에 있지 않으면 마우스를 사용하여 가로로 스크롤 할 수 있습니다. 문제는 마우스가 모든 상자가 포함 된 #makeMeScrollable div 위에있을 때입니다.

답변

2

똑같은 기능을 바인딩 해제해야합니다. 코드에서 유사한 풋 프린트를 가진 다른 함수의 바인딩을 해제합니다. 똑같은 기능을 사용하려면 먼저 정의한 다음 변수를 저장하고 bindunbind에서 해당 변수에 대한 참조를 사용하십시오. 컨텍스트에서이 작업을 보여주는 바이올린에 대한 업데이트는 http://jsfiddle.net/DJVX2/530/을 참조하십시오.

// Bind the callback 
$(selector).on('event', callback); 

// Unbind the callback 
$(selector).off('event', callback); 
: jQuery를 1.7 (이 기록시의 최신 버전), 바인딩 이벤트의 바람직한 방법으로서
// Define the callback 
var callback = function(ev) { ... }; 

// Bind the callback 
$(selector).bind('event', callback); 

// Unbind the callback 
$(selector).unbind('event', callback); 

이런 onoff을 사용하는 것이다 : 기본 개념이있다

(자세한 내용은 다른 인수를 전달하여 이벤트 위임을 수행 할 수도 있습니다.)

+1

또는 'on() | off()'... – elclanrs

+0

예, @elclanrs는 'on'입니다. 및 'off'는 이벤트 바인드의 우선 순위입니다. 최신 jQuery 버전. –

+0

@elclanrs, 선호하는 방법을 보여주기 위해 대답을 업데이트했습니다. –

관련 문제