2016-06-27 4 views
2

저는 WordPress에 상당히 익숙하며 함수를 정의하고 호출하려고 시도하지만 작동시키지 못합니다.Onclick 함수가 "정의되지 않았습니다"

다음 코드는 get_template_part를 사용하여 content.php 파일에서 호출되는 PHP 파일에 표시됩니다.

(index):363 Uncaught ReferenceError: checkAllTopicCheckBoxes is not defined.

아무도 나를 도와주세요 수 :

function checkAllTopicCheckBoxes() { 
    alert("Hello! I am an alert box!!"); 
} 

나는 그것이 반환하는 요소를 클릭 :

<div onclick="checkAllTopicCheckBoxes()"> </div> 

은 내가 function.php 파일의 맨 아래에 다음 코드를 추가?

+0

귀하의 기능 배치에 관한 것입니다! – Rayon

+0

같은 스크립트 파일이나 다른 파일에서이 checkAllTopicCheckBoxes 함수입니까? – MuthaFury

+0

파일 상단에 코드 추가 –

답변

2

작성한 내용은 자바 스크립트 기능으로 HTML 코드로 둘러싸여 있어야합니다. 당신이 뭔가에 함수를 만들어 본 적이있다 : 또한

echo('<script>function checkAllTopicCheckBoxes() { alert("Hello! I am an alert box!!");}</script>'); 

, 나는 워드 프레스는 스크립트를 추가하는 데 사용하는 일부 기능이 준비되어 있어야합니다 생각합니다. wp_enqueue_script (string $handle, string $src = false, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false);

편집에 모습을보십시오 : 난 그냥 그 질문을 발견, 그것은 당신에 응답 할 수 있습니다 How to write a Javascript function inside the functions.php of Wordpress?

0
function checkAllTopicCheckBoxes() { 
    alert("Hello! I am an alert box!!"); 
} 

하지 <? ... ?>이어야하며 예를 들어 <script>...</script> 랩을 가지고 있어야합니다

======== sample.php ======= 
<? 
// php script is here 
?> 

<script> 
function checkAllTopicCheckBoxes() { 
    alert("Hello! I am an alert box!!"); 
} 
</script> 

또는 PHP 스크립트 안에 js를 포함 시키려면 과 같이 입력해야합니다.

======== sample.php ======= 
<? 
// php script is here 

echo '<script>'; 
echo 'function checkAllTopicCheckBoxes() {'; 
echo ' alert("Hello! I am an alert box!!");'; 
echo '}'; 
echo '</script>'; 

?> 
1

OnClick 또는 유사한 속성을 사용하는 것은 매우 바람직하지 않습니다.

Javascript Event Listener를 사용하면 훨씬 더 좋은 방법입니다. 이벤트를 현대적인 방식으로 등록하는 것은 이벤트 처리의 unobtrusive way입니다. 또한 대상에 대해 둘 이상의 이벤트 수신기를 등록하려면 동일한 대상에 대해 addEventListener()를 호출 할 수 있습니다.

HTML :

자바 스크립트는 다음과 같이하도록되어
<div id="checkAllTopicCheckBoxes"> </div> 

:

(예 : 온 클릭 등) HTML 속성가이 내용/구조와 작동에 관한 피해야
document.getElementById ("checkAllTopicCheckBoxes").addEventListener ("click", myFunction, false); 

function myFunction() { 
    alert("Hello! I am an alert box!!"); 
} 

잘 분리되지 않아 버그를 찾기가 더 어려워집니다.

+0

@srMarquinho 미국 영어 철자를 영국 영어로 또는 그 반대로 전환하지 마십시오. – TylerH

+0

어떻게 버그를 찾기가 더 어려워 집니까? 나에게, "요소 검사"를 사용하고 요소를 클릭하여 디버그 할 수 있다면 .. onclick에 첨부 된 기능을 가장 쉽게 볼 수 있습니다. 코드로 가서 해당 함수 이름에 대한 검색을 수행하십시오. 거기에 저는 ... 왜 많은 사람들이 onClick을 사용하는 것이 나쁜 습관이라고 말하고 있는지 잘 모르겠습니다. – eaglei22

0

나는 당신과 같은 오류가있었습니다.

onclick html 속성을 사용하는 경우 태그를 사용하여 동일한 HTML 요소 내에서 onclick 함수를 정의해야합니다.

onclick html 속성을 사용하는 것보다 javascript/jquery를 사용하여 클릭 이벤트 리스너를 만드는 것이 가장 좋습니다.

관련 문제