2014-02-24 6 views
6

다음 코드를 인라인으로 작성하는 방법이 있습니까?인라인 JavaScript onclick 함수

<a href="#" onClick="function(){ 
    //do something; 
    return false; 
};return false;"></a> 

대신이 일을 :

<a href="#" onClick="doSomething(); return false;"></a> 

function doSomething(){ 
    //do something; 
} 
+6

를 참조? –

+3

왜? 인라인 코드는 끔찍하고 유지 보수가 불가능하거나 재사용이 가능합니다. –

+1

은 페이지에서 반향을 일으키기 때문에 억제해야합니다. 그리고 doSomething을 여러 번 반복하고 싶지 않습니다. – Toniq

답변

1

이 정말 권장하지 않습니다,하지만 당신은 모든 인라인과 같이 그것을 할 수 있습니다 :

<a href="#" onClick="function test(){ /* Do something */ } test(); return false;"></a> 

하지만 내가 생각할 수 없다 어떤 상황에서 다른 곳에서 함수를 작성하고 onClick을 호출하는 것보다 더 나은 경우가 있습니다.

+0

나는 파이어 폭스에서 이것을 시도했다. SyntaxError : function statement에 이름이 필요하다. – Toniq

+0

코드를 업데이트했다. 지금 일해야한다. – jvdub

+0

이 테스트 기능은 href 범위 밖에서 들립니까? – Toniq

5

이것은 당신이 자바 스크립트를 통해 방법을 지정하는 것처럼

<a href="#" onclick="function hi(){alert('Hi!')};hi()">click</a> 

당신은 온 클릭 내부의 자바 스크립트를 인라인 할 수 있습니다 작동합니다. 제 생각에는 코드 블록을 스크립트 블록 안에 넣는 것만으로 코드를 작성하는 것입니다.

12

자체 실행 익명 함수를 사용할 수 있습니다. 이 코드는 작동합니다 : 당신이 원하는 것이 왜

<a href="#" onClick="(function(){ 
    alert('Hey i am calling'); 
    return false; 
})();return false;">click here</a> 

JSfiddle

+1

이것을 Upvoting하지만 ... 정말, 당신은 인라인 코드를 작성하는 좋은 이유가 있기를 바랍니다, 그것은 대개 나쁜 습관입니다. – quoo

+2

^^ 나는 코드를 반복 할 때 나쁜 습관이되는 것을 볼 수 있지만, 익명의 함수는 그들의 위치를 ​​가지고있다. 커스텀 부스트랩 확인 모드를 호출하는 함수를 작성했습니다. 취소 할 상황을 처리하고 필요할 때 해당 인스턴스에 대해 고유하게 확인해야합니다. 다른 곳에서 두 함수를 작성하는 것은 어리석은 일이며 재사용하지 않을 때는 코드 내에서 검색해야합니다. – eaglei22

+0

이것에 대한 유스 케이스는로드 시작 화면을 닫는 데 사용됩니다. onclick은 스플래시 화면을 DOM에서 삭제합니다. –