onclick一直在调用javascript函数

时间:2017-05-28 21:49:14

标签: javascript html onclick

HTML:

<div class="container-fluid">
  <div class = "row text-center" align = "middle">
    <h2>Pseudo Random Quote Machine</h2>
  </div>
  <div class = "row text-center" align = "middle">
    <div class = "col-xs-12 well message" id = "quoting"> 
    </div>
  </div>
  <div class = "row text-center" align = "middle">
    <div class = "col-xs-12">
      <button id = "getMessage" class = "btn btn-primary">
        Get Random Quote
      </button> 
      <button id = "tweet" class = btn btn-primary>Tweet this!
      </button>
    </div>
  </div>
</div>

使用Javascript:

function randomQuotes() 
{ 
  //array of quotes
  var quotes = [ "\"Operator! Give me the number for 911!\" - Homer J. Simpson", "\"I\'m normally not a praying man, but if you\'re up there, please save me Superman\" - Homer J. Simpson", "\"I\'m in no condition to drive...wait! I shouldn\'t listen to myself, I\'m drunk!\" - Homer J. Simpson", "\"A Degenerate, Am I? Well You Are A Festizo. See, I Can Make Up Words Too, Sister\" - Peter Griffen", "\"Victory Shall Be Mine!\" - Stewie Griffen", "\"He's a spy, blow him up. I'm gonna go take a shit.\" - Rick Sanchez", "\"Ohh yea, you gotta get schwifty. \" - Rick Sanchez", "\"Yo! What up my glip glops!\" - Rick Sanchez", "\"WUBBA LUBBA DUB DUBS!!! \" - Rick Sanchez", "\"Existence is pain to a meeseeks Jerry, and we will do anything to alleviate that pain.\" - Mr. Meeseeks", " \"It\'s morphine time\" - TheRussianBadger"]; 

  var randNum = Math.floor((Math.random() * quotes.length));
  document.getElementById("quoting").innerHTML = quotes[randNum];
}

function tweetThis()
{
  var tweetToShare = document.getElementById("quoting").innerHTML;
  var tweetUrl = 'https://twitter.com/share?text=' +   encodeURIComponent(tweetToShare) + ".";
  window.open(tweetUrl);
}

document.getElementById("getMessage").onclick = function(){randomQuotes();}
document.getElementById("tweet").onclick = function(){tweetThis();}

基本上,每当我点击这两个按钮中的任何一个时,该功能就会一遍又一遍地被调用。这是代码running in Code Pen

我想我的问题是:

  1. 为什么这些函数会被多次调用?

  2. 我应该做些什么来阻止多次调用函数或阻止函数首先发生?

1 个答案:

答案 0 :(得分:1)

函数似乎只在chrome上调用过一次。也许你的浏览器缓存了一个旧脚本:maiusc + f5来清理