2009-11-23 4 views
0

새 탭/페이지를 열 수있는 onclick 이벤트가 이미 액션이있는 버튼에 추가되었습니다 (어떤 액션이 소스에 표시되지 않았는지 모르거나 양식 제출 조치입니다).fireclock로 Onclick 이벤트 오버라이드

단추 원래는 새 탭에서 페이지를 엽니 다. 실행을 중지하고 기본 페이지 열기가 수행되지 않는 onclick 특성을 실행 한 후 일부 기능을 실행하고 싶습니다. 내 페이지 만로드됩니다.

할 수 있는게 있나요?

답변

0

이벤트를 처리 한 후 이벤트가 울리는 것처럼 들립니다. 이 문제를 방지하려면 처리기 끝 부분에 event.cancelBubble = true을 추가하십시오.

+0

어떻게, 어떻게 페이지 렌더링 후 cancelBubble을 넣어? – dfilkovi

0

jQuery를 사용하여이 작업을 수행 할 수 있습니다

$('button').click(function() { 

    //do something 

    return false; // stop the event from propagating 
}); 
+0

이것은 두 개의 이벤트가있는 원인 단추가 작동하지 않으므로 다른 이벤트가 실행되지 않도록해야합니다. – dfilkovi

+0

jquery에서 이벤트 바인딩을 볼 수 있습니다. 이벤트를 제거 할 수 있어야합니다 - 그렇지 않으면 어떻게 멈출 수 있습니까? – matpol

0

은 onclick 이벤트에 전화가 false를 반환하는 함수를 받고보십시오. 이로 인해 버튼에 의한 기존의 액션이 오버라이드됩니다.

+0

하지만 액션이 폼에 있으면 오버라이드되지 않습니다. – dfilkovi

0

핸들러가 'onclick ='을 사용하여 설정 되었다면 onclick 속성을 간단히 다시 작성할 수 있습니다.

addEventHandler 또는 attachEvent가있는 요소에 핸들러가 추가 된 경우 핸들러를 설정하는 데 사용한 것과 동일한 매개 변수를 사용하여 removeEventHandler 또는 detachEvent를 사용하여 핸들러를 제거 할 수 있습니다.

설정자를 모르거나 익명의 기능을 사용한 경우 삭제할 수 없습니다.

이벤트가없는 복제로 요소를 대체하고 새 요소에서 고유 한 것을 설정할 수 있습니다.

(cloneNode이 이벤트를 복제하는데,하지만 때로는 일부 브라우저에서 수행되지 않습니다.) 난 단지의 onclick 속성을 추가 할 때