2016-09-28 3 views
-2

좀 HTML이 호출되고 : 나는 버튼을 처음 클릭하기 전에onclick을 지속적으로

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div onclick="postClick()" class="btn-simple" id="button">Solve</div> 
 
<div id="message"> 
 
    <p></p> 
 
</div> 
 
<script> 
 
    function postClick() { 
 
    answers = ["A", "B", "C"] 
 
    rand = answers[Math.floor(Math.random() * answers.length)]; 
 
    document.getElementById("message").innerHTML = "<p>" + rand + "</p>"; 
 
    $.ajax({ 
 
     type: 'POST', 
 
     url: 'somefile.php', 
 
     dataType: 'text', 
 
     success: function(msg) { 
 
     if (msg) { 
 
      window.location = msg; 
 
     } 
 
     } 
 
    }); 
 
    } 
 
</script>

, 다 괜찮습니다. 하지만 일단 버튼을 클릭하면 디스플레이가 자동으로 응답을 무작위로 순환합니다. 매 30 초마다 버튼을 클릭하는 것처럼 말입니다. 내가 원하는 것은 내가 클릭 할 때마다 다른 답변이 표시됩니다.

내가 뭘 잘못하고 있니?

편집 :

나는 함수의 호출을 기록하는 경우는 버튼 클릭입니다

arguments.callee.caller.toString() 

를 통해 :

function onclick(event) { postClick() } 
+4

(Firefox 51) 재생할 수 없습니다. [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)을 제공하십시오. – Xufox

+2

성공 콜백 코드 – charlietfl

+3

'postClick' 만 필요했던 AJAX 요청에'postClick()'을 포함 시켰을 것입니다. – Xufox

답변

0

내가 문제를 발견,하지만 이해가 안 돼요 그것. 다음 스크립트는 이벤트가 항상 발생하도록합니다.

<script src="//assets.codepen.io/assets/editor/live/events_runner-21174b4c7273cfddc124acb0876792e0.js"></script> 
+0

방금 ​​스크립트를 조금 분석했습니다. 'm' 함수는 click 이벤트를 생성하고 전달합니다. 함수'u'는 0.5 초의 타임 아웃을 설정합니다. 함수'c'는 위의 함수 중 일부를 호출하는 다른 이벤트 리스너를 트리거하는 다른 함수를 호출하는 이벤트 리스너를 바인드합니다. 축소 된 것이기 때문에 매우 혼란 스럽지만이 스크립트가 이상한 행동을 일으키는 이유를 알 수 있습니다. CodePen의 생성 된 소스 코드를 HTML 파일에 복사하여 붙여 넣었습니까? 다음에 HTML 템플릿을 미리 만들고 JS, CSS 및 HTML을 복사하여 붙여 넣으십시오. – Xufox