HTML 태그 <a>가 href와 onclick을 모두 추가하려고합니다.


123

HTML 태그에 대해 묻고 싶습니다.

<a href="www.mysite.com" onClick="javascript.function();">Item</a>

이것을 hrefonClick 과 함께 작동 하는 태그 로 만드는 방법은 무엇입니까? (먼저 onClick을 실행 한 다음 href를 선호)

답변:


232

약간의 구문 변경으로 필요한 것을 이미 가지고 있습니다.

<a href="www.mysite.com" onclick="return theFunction();">Item</a>

<script type="text/javascript">
    function theFunction () {
        // return true or false, depending on whether you want to allow the `href` property to follow through or not
    }
</script>

의 기본 동작 <a>태그의 onclickhref속성을 실행하는 것입니다 onclick, 다음을 따라 href만큼이 같은 onclick반환하지 않는 false이벤트를 취소 (또는 이벤트가 방지되지 않은)


element.addEventListener 함수로이 작업을 수행하는 방법도 있습니까?
TheEquah

4
href="#"실제 URL 대신 거기에 넣을 때까지 나를 위해 작동하지 않습니다 .
yegor256

저는 laravel 프레임 워크를 사용하고 있으므로 블레이드 뷰에 이것을 포함 시켰습니다. 작동하지 않습니다. 누구든지 laravel로 이것을 시도해 보았습니까?
Vajira Prabuddhaka

이 솔루션은 href의 mvc 컨트롤러에서 호출 된 작업 메서드가 있으면 작동하지 않습니다. 누군가 도와 주시겠습니까?
DharaPPatel

10

jQuery를 사용하십시오 . click이벤트 를 캡처 한 다음 웹 사이트로 이동해야합니다.

$("#myHref").on('click', function() {
  alert("inside onclick");
  window.location = "http://www.google.com";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>


11
나는 자바 스크립트 프레임 워크를 사용하지 않을 것입니다. 그러나 귀하의 답변 주셔서 감사합니다

7
위는 실제 링크가 아닙니다. 새 탭에서 열 수 없으며 매우 나쁜 습관입니다. 새 탭에서 무언가를 열 수있는 경우 (URL이 있음) 항상 의미있는 href속성을 추가하십시오 .
Nux

2

이를 달성하려면 다음 html을 사용하십시오.

<a href="www.mysite.com" onclick="make(event)">Item</a>

<script>
    function make(e) {
        // ...  your function code
        // e.preventDefault();   // use this to NOT go to href site
    }
</script>

다음은 작업 예 입니다.


이것은 Chrome에서 나를 위해 작동하지만 Safari는 기능을 실행하지만 href를 열지 않는 것 같습니다 ... 어떤 sugestions?
Ben

@Ben 나는 JS없이 바이올린에서 테스트했습니다-순수한 html 만 : <a href="http://example.com" >Item</a>Chrome에서 페이지 가이 링크를 실행할 수 있도록 허용하는 메시지가 표시됩니다 (크롬 URL 막대 끝에서 경고). 콘솔의 safari에서 다음과 같은 경고가 표시됩니다. [차단됨] fiddle.jshell.net/_display 의 페이지 가 example.com의 안전하지 않은 콘텐츠를 표시하도록 허용되지 않았습니다. 따라서 이것은 보안 문제 일 수 있습니다 (fiddle에서만?)
Kamil Kiełczewski

1

jQuery가 필요하지 않습니다.

어떤 사람들은 사용 onclick이 나쁜 습관 이라고 말합니다 ...

이 예제는 순수 브라우저 자바 스크립트를 사용합니다. 기본적으로 탐색 전에 클릭 핸들러가 평가되는 것으로 보이므로 탐색을 취소하고 원하는 경우 직접 수행 할 수 있습니다.

<a id="myButton" href="http://google.com">Click me!</a>
<script>
    window.addEventListener("load", () => {
        document.querySelector("#myButton").addEventListener("click", e => {
            alert("Clicked!");
            // Can also cancel the event and manually navigate
            // e.preventDefault();
            // window.location = e.target.href;
        });
    });
</script>

-1

사용 ng-click대신에 onclick. 다음과 같이 간단합니다.

<a href="www.mysite.com" ng-click="return theFunction();">Item</a>

<script type="text/javascript">
function theFunction () {
    // return true or false, depending on whether you want to allow 
    // the`href` property to follow through or not
 }
</script>

AngularJS에서만
Corrodian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.