2009-09-27 4 views
4

jquery의 .click()이 작동하지 않습니까?

<a href="javascript:onclick:alert('hi')"> click </a>. 

방법 경고 팝업을하지 않습니다 $('a').click(); 올 있는가?

+0

글자 그대로 요소를 "클릭"해야합니다. 예를 들어 나는이 $ ('a')를했다. trigger ('click'); ; clickme 아무 일도 없었 음 –

답변

4

나는 이것이 당신이 원하는 생각 :

다음
<a href="#" onclick="alert('hi')"> click </a> 

가 수동으로 트리거 :

$('a').trigger('click'); 
+0

예. 어떻게 나에게 효과가 없었던거야? 실제로 href URL이있는 경우 .trigger ('click')를 클릭해도 브라우저가 탐색되지 않는 이유는 무엇입니까? –

+0

yoda 및 내 대답에 표시된 것처럼 외부에서 이벤트 처리기를 연결할 수없는 이유는 무엇입니까? 인라인 이벤트 처리기는 권장되지 않습니다. –

+0

meder, 문자 그대로 "클릭"해야합니다. 예를 들어이 작업을 수행했습니다. $ ('a'). trigger ('click'); clickme 아무 일도 없었습니다 .... –

1

클릭 이벤트가 제대로 연결되지 않아서 작동하지 않는 이유는 href 값에 던져서 해킹하는 것입니다. 링크를 # 또는 실제 URL에 연결하고 JS 인라인을 삽입하지 마십시오. 그런 다음 외부에서 이벤트 핸들러를 연결하십시오. 을 수동으로 수행해야하는 경우 트리거하십시오.

+0

onclick도 언급하고 있습니까? onclick의 문제점은 무엇입니까? – recursive

+0

그것은 인라인 이벤트 처리기이며, 동작 (웹 디자인의 3 발 마사지 의자)에서 콘텐츠를 프리젠 테이션과 분리하는 것이 가장 좋습니다. –

4

너는 정상적인 자바 스크립트를 앵커에서 사용하거나 jquery를 사용합니다. ..

$('a').click(function (e) { 
    e.preventDefault(); 
    alert('hi'); 
}); 

+0

처음으로 더블 클릭을 수정하지 않습니다. –

+0

@ JeanPaul은 그다지 중요하지 않았습니다. – yoda

0

이 문제는 당신의 HREF는 "A HREF처럼, 뭔가 다른 =" "= #을"당신은 HREF 내부에있는 코드를 제거 : 당신이 jQuery를 사용하려는 경우,이 작업을 수행 암호.

<a href="javascript:alert('hi');">click</a> 
<a href="" onclick="alert('hi');">click</a> 

지금 당신이 링크를 클릭하는 jQuery 코드를 사용할 수 있습니다 사용자가 클릭 할 때 링크가 자바 스크립트 함수를 호출하게하는 방법은 두 가지가 있습니다.

1

당신이 클릭 이벤트를 트리거 할 수없는 이유는 설정되지 않도록한다 모든 클릭 이벤트.

코드에있는 onclick:onclick 이벤트와 아무 관련이 없습니다. 단지 레이블 일뿐입니다. 이벤트와 똑같은 이름을 지정해도 특별한 일이 발생하지 않습니다.

<a href="somepage.html" onclick="alert('hi');"> click </a> 
1

HREF와 클릭 트리거를 작동하게하는 방법이있다 : 당신이 이벤트를 원하는 경우

<a href="javascript:alert('hi')"> click </a> 

, 당신은 온 클릭 속성을 사용 :에

그래서, 당신의 코드는 동일합니다 . 이벤트 대상을 사용하여 window.location 호출을 click 이벤트에 바인딩해야합니다. 그러면 onclick 액션이 트리거되고 href 타겟이 뒤따라 올 것입니다. 그래서 같이 :

$("a").click(function(event) { 
    window.location = event.target.href; 
}); 

$("a").trigger("click"); 
0

당신이 href에서 onclick에 작업을 이동할 수없는 경우가 있습니다. (ASP.NET 다시 링크 버튼을 게시 등) 나는 다음과 같은 경우에 클릭 트리거 할 href 동작 인식 기능을 썼다 :

function triggerClickEvent(element) { 
    var e = $(element).click(); 
    if (e.attr('href').indexOf('javascript:') === 0) 
     eval(e.attr('href').replace('javascript:', '')); 
} 
0

나는이 문제에 대한 해결책은 JQuery와 통해 http://code.jquery.com/jquery-1.7.2.min.js 링크를 가져 오는 것이 아니라 가진 것을 발견 내 로컬 호스트에. 나는 Kohana를 사용하고 있으며 그것은 이상하게도 마술을했습니다.

관련 문제