2016-08-31 1 views
0

Jquery Click-Handler가 명명 된 함수에서 작동하지 않습니까? 나는이 느낌

내가

<a id="blah" href="#">somethinghere.com</a> 

내가 함수를 정의하는 요소를 가지고 ... 당신이 후에 만 ​​너무 적은 수면 또는 너무 많은 커피로 실행 이러한 문제 중 하나입니다

function test(){ 
    alert('hi'); 
}; 

나는이 기능을 클릭 핸들러 (https://jsfiddle.net/8r1rcfuw/30/)와 연결하려고 시도했다 :

$('#blah').on('click', test()); 

페이지를로드하면 아무런 클릭도없이 즉시 처리기가 실행됩니다. 난 그냥 핸들러 (https://jsfiddle.net/8r1rcfuw/36/)으로 익명 함수를 사용할 때

그러나 :

$('#blah').on('click', function(){ 
    test(); 
}); 


function test(){ 
    alert('hi'); 
} 

가 잘 작동하는 것 같다 : 잘 작동

$('#blah').on('click', function(){ 
    alert('hi'); 
}); 

모두 (https://jsfiddle.net/8r1rcfuw/39/) 수행 - 조금 중복 된 것처럼 보입니다.

내가 전에 1000 번 해본 것처럼 느껴진다.

이 이벤트 핸들러가
var temp=function test() { 
    alert('hi'); 
} 
$('#blah').on('click', temp); 
+2

'$ ('# ㅋ')에 ('클릭'테스트()).'==>'$ ('# ㅋ')에 ('클릭', 테스트). ' 호출을 제거하십시오. – Tushar

답변

2

함수로, 당신이 그것을에 함수의 결과를 전달하는 :

$('#blah').on('click', test()); 

이 동일

0

또한 기능의 개체를 사용할 수 있습니다 같이 함수로 그것의

$('#blah').on('click', undefined); //As your funcion doesn't return anything 

생각해 가치도, 당신은 할 수 있습니다 :

다음 6,
var myFunction = function() { 
    alert("Hi"); 
} 

또는

function myFunction() { 
    alert("hi"); 
} 

그리고 :

$('#blah').on('click', myFunction); //Without invocation! 

또는 익명 함수 사용 :

$('#blah').on('click', function() { 
    alert("Hi"); 
}); 
0

시도 :

$('#blah').on('click', test); // your function name only 

Updated Fiddle

관련 문제