2016-09-28 65 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>

之前,我點擊按鈕的第一次,一切都很好。 但是,一旦我點擊了按鈕,顯示屏會自動循環查看答案,就好像我每半秒左右點擊一次按鈕。我想要的是每次點擊時顯示的不同答案。

我在做什麼錯?

編輯:

如果我登錄該函數的調用,通過

arguments.callee.caller.toString() 

是按鈕點擊:

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

無法重現(Firefox 51)。提供[最小,完整和可驗證示例](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'創建點擊事件並分派它。函數'u'設置半秒超時。函數'c'綁定調用其他函數的事件偵聽器,這些函數觸發調用上述某些函數的另一個事件偵聽器。這很混亂,因爲它已經被縮小了,但你明白了爲什麼這個腳本會對怪異行爲負責。您是否已將生成的CodePen源代碼複製粘貼到您的HTML文件中?下一次事先創建一個HTML模板,並在那裏複製粘貼你的JS,CSS和HTML。 – Xufox