[JQUERY] 왜 페이지로드 즉시 클릭 이벤트 처리기 화재는 무엇입니까?
JQUERY왜 페이지로드 즉시 클릭 이벤트 처리기 화재는 무엇입니까?
해결법
-
1.당신은 콜백과 같은 함수에 대한 참조, 함수 실행하지 않는 결과를 전달하려는 :
당신은 콜백과 같은 함수에 대한 참조, 함수 실행하지 않는 결과를 전달하려는 :
showDiv ()는 어떤 값을 반환 더 return 문을 사용하지 않은 경우, 정의되지 않은 반환됩니다.
showDiv 실행되어야하는 함수에 대한 참조이다.
이 작업을해야합니다 :
$(document).ready(function(){ $('a.test').bind("click", showDiv); });
양자 택일로, 당신은 더 진보 된 기능을 수행하는 익명 함수를 사용할 수 있습니다 :
...bind('click', function(){ foo.showDiv(a,b,c); ...more code... });
어떤 상황에서 당신은 콜백과 같은 함수에서 반환하는 값을 사용할 수 있습니다 :
function function foo(which) { function bar() { console.log('so very true'); } function baz() { console.log('no way!'); } return which ? bar : baz; } ...click( foo( fizz ) );
이 예에서, 푸 소다를 사용하여 평가하고 click 이벤트에 대한 콜백으로 할당하는 함수를 반환합니다.
-
2.당신 같은 외모 직접이 기능 showDiv를 호출 (과 직접 바인딩 대신 클릭 핸들러에 showDiv ()의 리턴 결과를 결합하고 있습니다.
당신 같은 외모 직접이 기능 showDiv를 호출 (과 직접 바인딩 대신 클릭 핸들러에 showDiv ()의 리턴 결과를 결합하고 있습니다.
당신은 뭔가를 원하는
$(document).ready(function() { $('a.test').bind("click", showDiv); });
-
3.아래의 라인을 사용합니다. 그 라인이 실행될 때 사업부 ()가 바로 함수를 호출합니다 보여줍니다.
아래의 라인을 사용합니다. 그 라인이 실행될 때 사업부 ()가 바로 함수를 호출합니다 보여줍니다.
$('a.test').bind("click", showDiv);
-
4.로 변경합니다. $ ( 'a.test') 바인드 (showDiv "을 클릭합니다"); (당신이 함수 참조를 전달하려는 때문에 showDiv 주위에 괄호를 넣어하지 않음).
로 변경합니다. $ ( 'a.test') 바인드 (showDiv "을 클릭합니다"); (당신이 함수 참조를 전달하려는 때문에 showDiv 주위에 괄호를 넣어하지 않음).
from https://stackoverflow.com/questions/7102413/why-does-click-event-handler-fire-immediately-upon-page-load by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 하이라이트 / 선택한 텍스트를 가져옵니다 (0) | 2020.09.23 |
---|---|
[JQUERY] 4 레일 : 터보 링크 .ready $ (문서) ()를 사용하는 방법 (0) | 2020.09.23 |
[JQUERY] 이미지로드에 jQuery를 콜백 (이미지가 캐시 된 경우에도) (0) | 2020.09.23 |
[JQUERY] JQuery와 APPEND SVG 요소와 작동하지? (0) | 2020.09.23 |
[JQUERY] 어떻게입니다 onbeforeunload 대화 상자를 무시하고 내 자신으로 대체 할 수 있습니까? (0) | 2020.09.23 |