사용자가 웹 페이지 본문의 아무 곳이나 클릭 할 때 실행되는 코드가 있습니다. 클릭이 NON-LINK 인 경우 JavaScript 만 실행되기를 원합니다. 어떤 아이디어? 이벤트가 실행 위의 핸들러를 중지합니다 <body>
에 도달하기 전에 모든 시도가 전파를 막을 수 있다는NON-LINK의 JavaScript onClick은 어떻게 실행합니까?
감사
마이크
사용자가 웹 페이지 본문의 아무 곳이나 클릭 할 때 실행되는 코드가 있습니다. 클릭이 NON-LINK 인 경우 JavaScript 만 실행되기를 원합니다. 어떤 아이디어? 이벤트가 실행 위의 핸들러를 중지합니다 <body>
에 도달하기 전에 모든 시도가 전파를 막을 수 있다는NON-LINK의 JavaScript onClick은 어떻게 실행합니까?
감사
마이크
document.body.onclick = function(e){
var target = e ? e.target : window.event.srcElement;
if (target.nodeName.toLowerCase() !== 'a') {
// Do something here...
}
};
참고. 이를 피하기 위해 이벤트 캡처를 사용할 수 있습니다.
document.body.onclick = function ...은 명령문입니다. 따라서 닫는 ';'
jQuery를 사용하십시오.
$(function() {
$("body").click(function() { /* your code here */ });
$("a").click(function(e) { e.stopPropagation(); });
});
참고 : 스크립트가 HTML 헤드로 들어가고 jQuery 라이브러리에 대한 참조가 필요하며 "$ (function()"은 "$ (document) .ready (function()"의 줄임말입니다. jQuery 사이트에서 필요합니다. – lox
이렇게 부를까요?
? 왜 마지막 괄호 뒤에 세미콜론이 있습니까? 감사! – Mike가변 감속이기 때문에 세미콜론이 있습니다. 그리고 아니요, 당신은 사건을 눈에 띄게 추가 할 필요가 없습니다; 위의 코드는 작동합니다 - BODY 내의 어딘가에 SCRIPT 태그에 넣으십시오. – James
이것은 사이트 본체 (모든 이벤트)와 관련된 onclick 이벤트에서 호출되며, e는 요소로 전달됩니다. 이 블록을 할당하기 때문에 세미콜론이 있습니다. – fixmycode