[javascript] 태그의 onclick 속성에서 발생하는 사용자 정의 함수에서 preventdefault를 호출하는 액세스 이벤트
다음과 같은 링크가 있습니다.
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
그리고 나는 링크를 클릭 할 때 주소 표시 줄에 추가 되기 때문에 preventDefault()
내부 작업을하고 싶습니다 ( 또는 하지 않음 )myfunc()
#
return false;
href='javascript:void(0);'
이게 가능해? 이벤트를 내부로 가져올 수 있습니까?myfunc()
답변
W3C 호환 브라우저에서 발생한 이벤트 event
의 event
개체 가 될 함수를 인라인으로 전달할 수 있다고 생각 합니다 (예 : IE의 이전 버전은 여전히 이벤트 처리기 함수 내부에서 검색해야합니다 window.event
).
간단한 예 .
function sayHi(e) {
e.preventDefault();
alert("hi");
}
<a href="http://google.co.uk" onclick="sayHi(event);">Click to say Hi</a>
- 있는 그대로 실행하고 경고 후 링크가 Google로 리디렉션되지 않는지 확인합니다.
- 그런 다음 핸들러에
event
전달 된onclick
것을 다른 것으로 변경하고e
실행을 클릭 한 다음 경고 후 리디렉션이 발생하는지 확인합니다 (결과 창이 흰색 으로 바뀌고 리디렉션을 보여줍니다).
답변
가장 간단한 해결책은 다음과 같습니다.
<a href="#" onclick="event.preventDefault(); myfunc({a:1, b:'hi'});" />click</a>
실제로 JS 지원 브라우저가없는 경우 폴 백이있는 문서에 대해 캐시 무효화를 수행하는 좋은 방법입니다 (JS가없는 경우 캐시 무효화 없음).
<a onclick="
if(event.preventDefault) event.preventDefault(); else event.returnValue = false;
window.location = 'http://www.domain.com/docs/thingy.pdf?cachebuster=' +
Math.round(new Date().getTime() / 1000);"
href="http://www.domain.com/docs/thingy.pdf">
JavaScript가 활성화 된 경우 캐시 무효화 쿼리 문자열이있는 PDF를 엽니 다. 그렇지 않으면 PDF 만 엽니 다.
답변
이 시도:
<script>
$("a").click(function(event) {
event.preventDefault();
});
</script>
답변
<script type="text/javascript">
$('a').click(function(){
return false;
});
<script>
답변
링크에 고유 한 클래스를 추가하고이 클래스가있는 링크의 기본값을 방지하는 자바 스크립트를 추가합니다.
<a href="#" class="prevent-default"
onclick="$('.comment .hidden').toggle();">Show comments</a>
<script>
$(document).ready(function(){
$("a.prevent-default").click(function(event) {
event.preventDefault();
});
});
</script>
답변
a 태그에서 href 속성을 제거 할 수 없습니까?
답변
우리가 onClick을 사용할 때 우리는 기본값과 다른 것을 원한다고 생각합니다. 따라서 onClick을 사용하는 모든 링크에 대해 :
$("a[onClick]").on("click", function(e) {
return e.preventDefault();
});