2013-11-21 3 views
0

안녕하세요JS 기능은 두 번

$("#cont_btn").click(function() { 
    $("#cont_btn").attr('disabled', 'disabled'); 
    selRowIds = $("#CodeGrid").jqGrid('getGridParam', 'selarrrow'); 
    rowsToJson(selRowIds); 
    //return false; 
}); 

버튼의 cont_btn는 부트 스트랩이 모달에있는 버튼입니다 나에게 이상한 행동을주고 다음 코드 조각이 호출되고. 계속 버튼과 닫기 버튼이 있습니다.

닫기 버튼을 선택하거나 모달 바깥 쪽을 클릭하여 닫은 다음 모달을 다시 열면 함수가 두 번 호출됩니다.

나는

.one('click', function() { ... } 

를 사용하여 시도하고 난 두 번 호출 점점되지
$("#cont_btn").click(...

클릭의 라인에 브레이크 포인트를 뒀다. 내 디버깅 동안 나는 스크립트 다시 내가

$("#cont_btn").click(function() { 

의 라인이 히트 볼 페이지로드에

$("#cont_btn").attr('disabled', 'disabled'); 

의 줄에 입력하지만 코드가 기능을 입력하지 않는 것을 찾는거야 닫기 버튼으로 건너 뜁니다. 나는 이것이 초기화되는 두 버튼에 대한 청취자라고 생각합니까?

Google 검색은 스크립트가 두 번 호출되지 않고 false를 반환한다는 것을 확인했지만 아무것도 작동하지 않았 음을 확인했습니다.

도움을 주시면 감사하겠습니다.

+6

boo-boo를 만들었습니다. 이벤트 핸들러는 모달을 여는 함수 안에 있으므로 모달이 열릴 때마다 이벤트 핸들러가 한 번 더 바인딩됩니다. – adeneo

+0

@adeneo 나는 똑같이 쓰려고했다. –

+0

덕분에 지금 고치고 다시보고 할 것입니다. –

답변

2

이벤트 핸들러는 모달을 여는 함수 내에 있으므로 모달이 열릴 때마다 이벤트 핸들러가 한 번 더 바인딩됩니다.