2013-06-13 6 views
-1

요소에 대한 클릭 호출의 바인딩을 해제하고 바인딩 해제를 시도하는 중입니다. 가 나는 각 각 클릭 처리하는 핸들러를 사용할 수 있습니다 알고 있지만, 메신저, 예를 들어 사용하여 너무 많은 요소에 바인딩을 해제하여 :바인딩 해제 된 모든 요소를 ​​Jquery로 다시 바인딩

$(".classname").unbind('click'); 

을 자신이 하나가 1을 기록 할 그래서 난 할 수 있습니다, 다른 미적 방법과 방식으로 1을 1로 쓰는 것보다 더 효율적입니까? 감사합니다. .

편집 :

자세한 예 : 난 1 개 특정 버튼을 누를 때 모두 같은 CSS 클래스, 이 내가 가진 많은 버튼이 난 나머지 모두를 클릭에서 unbinded 될 필요가있다. 버튼을 누른 후 그의 버튼을 끝내면 모든 클릭 이벤트를 다시 바인딩해야합니다. 그게 내가 언 바인드 바인딩 해제라고했을 때 그게 무엇입니까.

+2

언 바인드의 바인딩 해제는 무엇입니까? – PSR

+0

자세히 게시 할 수 있습니까? 첫 번째 장소에서 핸들러는 어떻게 묶여 있습니까? 소스 코드를 볼 수 있습니까? –

+0

@PSR 나는 질문을 편집했다. –

답변

1

를 사용합니다. 기능 시작 부분에 true 또는 false이 맞는지 확인합니다. 이처럼

:

var inProcess = false; 
function myFunction() { 
    if (!inProcess) { 
     inProcess = true; 
     // some logic code here 
     inProcess = false; 
    } 
    return; 
} 

그것은 거의 같은 과정이지만, 그것은 "바인딩"/ "바인딩 해제"여러 시간보다 브라우저 라이터입니다.

+0

그들이 말하는 것처럼 합법적 인 것처럼 보입니다. –

0

몇 가지 요소에 클릭 이벤트가 있고 나머지는 필요하지 않은 것으로 보입니다. 이것을 달성하려면 요소에 임의의 클래스 이름을 지정하면 jQuery 선택기로 사용할 수 있습니다. 당신은 당신이 inProcess 같은 글로벌 부울 변수를 정의하지 않은 이유 기능의 다중 호출을 피하기 위해 버튼 바인딩을 해제 할 경우

<p class="classname">Some element</p> 
<p class="classname">Some element</p> 
<p class="classname">Some element</p> 
<p class="classname arbitraryclassname">Some element</p> 
<p class="classname arbitraryclassname">Some element</p> 
<p class="classname arbitraryclassname">Some element</p> 

그런 다음 JQuery와에

$(".arbitraryclassname").bind('click', function() { 
    // Some logic 
});