IT

태그의 onclick 속성에서 발생하는 사용자 정의 함수에서 preventdefault를 호출하는 액세스 이벤트

lottoking 2020. 8. 5. 07:37
반응형

태그의 onclick 속성에서 발생하는 사용자 정의 함수에서 preventdefault를 호출하는 액세스 이벤트


다음과 같은 링크가 있습니다.

<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>

링크를 클릭 할 때 ( 또는 하지 않고 ) 주소 표시 줄에 preventDefault()a #가 추가 라고 내 기능 내부 를 수행하고 싶습니다.return false;href='javascript:void(0);'

이게 가능해? myfunc 안에서 이벤트를받을 수 있나요


W3C 브라우저에서 발생 호환하는 이벤트 eventeventobject- 가 될 함수 인라인으로 전달할 수 있다고 생각 합니다 (즉, 이전 버전의 IE는 여전히 이벤트 처리기 함수 내부에서 감지 해야합니다 window.event).

빠른 예 입니다.

function sayHi(e) {
   e.preventDefault();
   alert("hi");
}
<a href="http://google.co.uk" onclick="sayHi(event);">Click to say Hi</a>

  1. 그대로 실행하고 알림 후 링크가 Google로 리디렉션되지 않습니다.
  2. 그런 다음 처리기로 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>

태그에서 href 속성을 제거 할 수 없습니까?


onClick을 사용할 때 사용하는 것을 사용하고 싶다고 생각합니다. 따라서 onClick과의 모든 링크에 대해

$("a[onClick]").on("click", function(e) {
  return e.preventDefault();
});

다음과 같이 onclick에서 이벤트에 액세스 할 수 있습니다.

<button onclick="yourFunc(event);">go</button>

그리고 귀하의 자바 스크립트 함수에서 내 조언은 첫 번째 줄 문을 다음과 같이 추가하는 것입니다.

function yourFunc(e) {
    e = e ? e : event;
}

그런 다음 모든 곳에서 e를 이벤트 변수로 사용하십시오.


단순한!

onclick="blabla(); return false"

e.preventDefault (); 에서 https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault

또는 귀하의 방법에서 false를 반환하십시오.

참고 URL : https://stackoverflow.com/questions/8614438/access-event-to-call-preventdefault-from-custom-function-originating-from-onclic

반응형