태그의 onclick 속성에서 비롯된 사용자 지정 기능에서 기본값을 호출하지 못하도록 하는 액세스 이벤트
다음과 같은 링크가 있습니다.
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
그리고 저는 하고 싶습니다.preventDefault()
안에서.myfunc()
, a때문에#
링크를 클릭할 때 주소 표시줄에 추가됩니다(하지 않음).return false;
아니면href='javascript:void(0);'
)
가능한가요?안에서 이벤트를 받을 수 있습니까?myfunc()
당신이 지나갈 수 있을거라 믿습니다.event
인라인 기능으로, 다음이 될 것입니다.event
W3C 호환 브라우저에서 상승된 이벤트에 대한 개체(즉, 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
, run(실행)을 클릭한 다음 알림 후에 리디렉션이 수행됩니다(결과 창이 흰색으로 바뀌고 리디렉션이 표시됨).
가장 간단한 해결책은 다음과 같습니다.
<a href="#" onclick="event.preventDefault(); myfunc({a:1, b:'hi'});" />click</a>
JS를 사용하지 않는 브라우저에 대한 폴백(fallback)이 있는 문서에 대해 캐시 버스팅을 수행하는 좋은 방법입니다(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>
그냥 a 태그에서 href 속성만 제거하면 안되나요?
<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>
클릭을 사용할 때 기본값이 아닌 다른 작업을 하고 싶다고 생각합니다.onClick의 모든 링크에 대해:
$("a[onClick]").on("click", function(e) {
return e.preventDefault();
});
간단합니다!
onclick="blabla(); return false"
이벤트는 다음과 같이 on click에서 액세스할 수 있습니다.
<button onclick="yourFunc(event);">go</button>
그리고 당신의 javascript 기능에서, 제 조언은 첫번째 줄 문장을 다음과 같이 추가하는 것입니다.
function yourFunc(e) {
e = e ? e : event;
}
그런 다음 everywhere를 이벤트 변수로 사용합니다.
JS 라이브러리나 jQuery 없이.가능한 경우 좋은 팝업 창을 엽니다.정상적인 링크 열기에 안전하게 실패합니다.
<a href="https://acme.com/" onclick="onclick="openNewWindow(event, this.href);">...</a>
그리고 도우미 기능:
function openNewWindow(event, location) {
if (event.preventDefault && event.stopImmediatePropagation) {
event.preventDefault();
event.stopImmediatePropagation();
} else {
event.returnValue = false;
}
window.open(location, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=450');
}
e.preventDefault(); from https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
또는 사용자의 방법에서 거짓을 반환해야 합니다.
언급URL : https://stackoverflow.com/questions/8614438/access-event-to-call-preventdefault-from-custom-function-originating-from-onclic
'programing' 카테고리의 다른 글
고정된 요소를 부모에 대해 배치할 수 있습니까? (0) | 2023.10.23 |
---|---|
정확한 문자열 일치를 위해 LIKE 대 = 사용 (0) | 2023.10.23 |
스위프트에서 NS Exception 포착 (0) | 2023.10.23 |
C++로 아두이노를 프로그래밍하는 방법 (0) | 2023.10.23 |
함수 매개변수의 세미콜론 (0) | 2023.10.23 |