2011-08-25 1 views
5

HTML 링크 (앵커 요소)의 기본 동작/이벤트를 어떻게 트리거 할 수 있습니까? 즉, 사용자가 클릭 한 것처럼 기존 HTML 링크를 "클릭"하기 위해 JavaScript/jQuery를 사용하는 것입니다.HTML 링크 (앵커 요소)의 기본 동작/이벤트를 트리거하는 방법은 무엇입니까?

그냥 .click()을 사용하면 작동하지 않는 것 같습니다.

<a id="alink" href="http://google.com" target="_blank">a link</a> 

예 바이올린 :이 HTML에 대한

$('#alink').click(); 
// the nothing happening 

http://jsfiddle.net/dCfD8/

차라리 자바 스크립트에서 새 창을 생성 (그리고 어떤 다른 사람을 돌볼하지 않는 게 좋을 요구를 처리 할 때 링크 클릭).

$('#alink').trigger('click'); 
+1

이를 참조하십시오 http://stackoverflow.com/questions/1694595/can-i-call-jquery - 클릭 - 따라 가기 - i-havent-bound-an-event-handl –

+0

@Digital Plane, 감사합니다. 이전에 그걸 보지 못했습니다. 문제가 있다면 변경 사항이 있는지, 아니면 "할 수 없다"는 대답은 최신 브라우저 (예 : Chrome 13 이상)에도 적용됩니다. – Qtax

답변

2

당신은 jQuery를에 간단한 trigger 방법을 사용하여 클릭 이벤트를 트리거 할 수 있습니다

+0

"링크를 클릭 한 것처럼 동작하도록 할 수있는 방법이 없습니다"라는 문구는 http://stackoverflow.com/questions/1694595/can-i-call-jquery-click-to-follow-an- a-link-if-i-havent-bound-an-event-handl은 또한 진술한다. – Qtax

-1

이 시도.

$('#alink').trigger('click'); 

비록 이벤트가 시작 되더라도 브라우저는 링크 href를 따르지 않습니다. href를 따르는 유일한 방법은 실제로 직접 마우스로 클릭하는 것입니다.

내가 아는 한, 링크를 클릭 한 것처럼 작동하도록 강제하는 방법은 없습니다. 페이지 사이를 실제로 이동하기 위해 문서 위치 또는 이와 유사한 것을 변경해야합니다. 자신의 게시물에 파비오 Cicerchia의 의견에 확장

+0

(적어도 바이올린에서) 작동하지 않습니다. – Qtax

+1

이것은 클릭과 관련된 jQuery 이벤트 만 호출합니다. 사용자가 앵커를 클릭하여 다른 URL로 리디렉션하려면 "document.location = $ ('# alink'). attr ('href ');' –

+0

'target = "_ blank"'또는 다른 특별한 링크 속성에서는 작동하지 않습니다. – Qtax

1

: 당신은 window.open 사용할 수 있습니다

var link = $('#alink'); 
var target = link.attr("target"); 
window.open(link.attr("href"), target ? target : "_self"); 
+0

+1. 그게 효과가있는 것 같아. 하지만 나는 정상적인 사용자가 링크를 클릭하는 데 영향을 미치지 만 (기본) 팝업 처리기/차단기가이를 차단할 수 있다고 생각합니다. – Qtax

+0

예, 실제로 대부분의 팝업 차단기는 사용자 상호 작용에 의해 트리거되지 않으면 차단합니다. 타겟이 설정되어 있지 않은 경우에는'doument.location = ... '과 결합하면된다. 어쩌면 배경을 설명해야하며, 왜 그렇게해야할까요? 어쩌면 그런 식으로 대안을 찾을 수 있습니다. – RoToRa

0
<script src='jquery lib source' ></script> 
    <script> 
    function force() 
    { ...do something...to fill page2 
     $('#gopage2').trigger('submit'); 
    }  
    </script> 
    <form action='#page2' id='gopage2'> 
    </form> 

    ... 
    <span name='#page2'>This is page2</span> 
+1

단순한 코드가 아닌 답에 몇 가지 설명을 추가하십시오. 우리의 목표는 사람들이 대답을 이해하고 다른 상황에서도 적용 할 수 있도록 사람들을 교육하는 것입니다. 코드에 설명을 추가하고 설명을 추가하면 이번에 질문 한 사람뿐 아니라 앞으로 동일한 문제가있는 사람에게 대답을 도움이 될 것입니다. – starsplusplus

관련 문제