나는 모든 상호 작용에서 기능을 실행할 ajax 앱을 가지고있다. 해당 기능에 대한 모든 설치 코드가 캡슐화 된 상태로 유지 될 때마다 매번 설치 기능을 실행할 수 있기를 원합니다. 그러나 바인딩 요소가 두 번 이상이면 처리기가 두 번 이상 실행된다는 것을 의미합니다. 이는 명백하게 바람직하지 않습니다. jQuery에서 두 번 이상 호출되는 핸들러없이 한 번 이상 요소에 대한 bind를 호출하는 우아한 방법이 있습니까?jQuery에서 단 한번의 클릭 만 바인딩하는 방법이 있습니까?
답변
당신은 one()
기능을 document
에 이벤트를 첨부 할 수 있습니다 :
$(document).one('click', function(e) {
// initialization here
});
일단 실행 다시 실행되지 않도록이 이벤트 핸들러는 다시 제거됩니다. 그러나 다른 요소의 click 이벤트 인 전에
을 실행하도록 초기화해야하는 경우 다른 것을 생각해야합니다. click
대신 mousedown
을 사용하면 mousedown 이벤트가 click 이벤트 전에 발생하기 때문에 작동합니다.
사용자 jQuery one
Tom이 말했던 것처럼 기능하지만 다시 바인딩하기 전에 핸들러를 바인딩 해제합니다. 익명 함수를 사용하는 것보다 변수에 이벤트 처리기를 할당하는 것이 도움이됩니다.
var handler = function(e) { // stuff };
$('#element').unbind('click', handler).one('click', handler);
//elsewhere
$('#element').unbind('click', handler).one('click', handler);
또한 요소에 연결된 모든 클릭 처리기를 제거 .unbind('click')
할 수 있습니다.
Chetan Sastry의 답변이 원하는 것입니다. 기본적으로 $ (element) .unbind (event)를 호출하면된다. 모든 사건 전에. 당신이) (loadAllButtonClicks 같은 기능이있는 경우
그래서 그 페이지에 각 버튼에 대한 모든
$(element).on("click", function(){});
방법을 포함, 당신은 버튼을 클릭 할 때마다,이 분명히보다 더 생산하는 것으로 실행 각 버튼에 대해 하나의 이벤트. 이것은 단지 모든
$(element).on("click", function(){});
전에
$(element).unbind(event);
를 추가 해결하기 위해하고 해당 요소에 대한 모든 이벤트 바인딩을 해제합니다, 다음 번의 클릭 이벤트를 추가합니다.
언 바인드가 트릭을하지 않으면 .off()를 사용할 수도 있습니다. 확인 .OFF에게 주어진 선택과 이벤트가 정확히 처음에()를 CSTE 연구진은 제공된 것과 일치합니다
$("div.selector").off("click", "a.another_selector");
$("div.selector").on("click", "a.another_selector", function(e){
이이 문제를 다시로드 같은 아약스를 해결하는 나를 위해 일한 것입니다.
$ (요소) .unbind (이벤트); 솔루션은 요소에서 유형의 모든 이벤트 (예 : 클릭)를 제거하지만이 방법은 문제의 selector와 관련된 이벤트를 제거하고 동일한 이벤트 유형을 공유하는 경우에도 다른 이벤트를 첨부합니다. –
- 1. 보기에 단 한번의 터치 만 허용
- 2. jquery에서 버튼을 클릭 할 수있는 방법이 있습니까?
- 3. 자바 - 단 한번의 데이터로 singletone을 초기화하는 방법은 무엇입니까?
- 4. 버튼을 클릭 한 후에 만 gridview를 바인딩하는 방법은 무엇입니까?
- 5. WPF의 부모 행에 바인딩하는 간단한 방법이 있습니까?
- 6. TextBox 기본값을 그룹으로 바인딩하는 방법이 있습니까?
- 7. 변수를 바인딩하는 방법이 있습니까? PHP 5
- 8. 메서드를 ListBox의 DataTemplate에 바인딩하는 방법이 있습니까?
- 9. 배열 하위 객체를 바인딩하는 방법이 있습니까?
- 10. 은 dataProvider의 항목 속성에 바인딩하는 방법이 있습니까?
- 11. 증가 한번의 마우스 클릭 당/키를 눌러 XNA
- 12. 는 단 한번의 클릭 내가 내가 출력 결과를 얻고 있지 않다 다음과 같이 제공하고 때 .. URL에 을 값을 보내려고하고
- 13. jQuery에서 한 요소의 거리를 찾는 방법이 있습니까?
- 14. jQuery에서 이것을 작성하는 더 좋은 방법이 있습니까?
- 15. JQuery에서 요소를 정렬하는보다 효율적인 방법이 있습니까?
- 16. jQuery에서 이벤트를 위임 할 수있는 방법이 있습니까?
- 17. jquery에서 이미지 맵 좌표를 사용하는 방법이 있습니까?
- 18. jQuery에서 아약스 메시지 텍스트를 커스터마이즈하는 방법이 있습니까?
- 19. JQuery에서 이미지의 일부분을 변경하는 방법이 있습니까?
- 20. jquery에서 클릭 이벤트 문제가 발생했습니다.
- 21. 클래스에서 단 하나의 항목 만 선택
- 22. 본문에 바인딩하는 것보다 클릭 이벤트를 문서에 바인딩하는 것이 더 낫습니까?
- 23. jQuery에서 클릭 이벤트를 시뮬레이트하는 방법
- 24. 클릭 방법이 실행되지 않음
- 25. jQuery에서 보이는 텍스트 필드 만 선택하십시오.
- 26. 클릭 한 Google지도 마커를 식별하는 방법이 있습니까?
- 27. 콘솔에 클릭 가능한 링크를 인쇄하는 방법이 있습니까?
- 28. Gmail에서받은 이메일 만 추출하는 방법이 있습니까
- 29. 여러 번의 클릭 이벤트를 바인딩하는 jquery 성능
- 30. 확인란에 체크 박스 만 바인딩하는 방법은 무엇입니까?
거기에');'가 없습니다. – Ben
오 감사합니다 벤, 고정 ... –
이 하나 몰랐어요. – DMin