首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当页面加载时,我的函数正在运行,但我只希望它在选定的区域被选中时运行。

当页面加载时,我的函数正在运行,但我只希望它在选定的区域被选中时运行。
EN

Stack Overflow用户
提问于 2016-08-25 15:33:26
回答 5查看 70关注 0票数 0

我正在用JavaScript和Tabletop.js制作一个随机引号生成器。当我的页面加载时,将自动初始化从我的电子表格中提取引用和生成的函数。我不希望它生成一个新的引号,除非页面/区域被点击。

顺便说一句,这是一个粗俗的页面,基于greatfu**ingstartupadvice.com

以下是代码页:

http://codepen.io/JonLangel/pen/kXdmqP?editors=1010

以下是Codepen页面中的JS:

代码语言:javascript
复制
var my_spreadsheet = 'https://docs.google.com/spreadsheets/d/1sX822Oiga0j0eHC8PvegRo6W8GGC0a28nVgnvSsOqo/pubhtml';

var sheet_data;

function init() {
  Tabletop.init( { 
    key: my_spreadsheet, 
    callback: saveData,
    simpleSheet: true
    });
}
function saveData(data, tabletop) {
  sheet_data = data; 
  newQuote(); 
}

 function newQuote() {
    var randNum = Math.floor(Math.random() * (sheet_data.length));

    $("#advice").html(sheet_data[randNum].Advice).addClass('animated     zoomIn').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
      $(this).removeClass();
        });
 }
 $(document).ready(function() {

   init();

   $('.container').onclick(function(){
     newQuote();

 }); 

});
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-08-25 15:39:14

在页面的开头,您正在初始化Tabletop,但是在init的回调中:

代码语言:javascript
复制
callback: saveData //saveData is callback of init

并编写此函数:

代码语言:javascript
复制
function saveData(data, tabletop) {
  sheet_data = data; 
  newQuote();  //here You have newQuote called
}

newQuote() saveData中删除,并在页面加载时不会生成引号

代码语言:javascript
复制
function saveData(data, tabletop) {
  sheet_data = data; 
}
票数 0
EN

Stack Overflow用户

发布于 2016-08-25 15:37:12

调用saveData作为Tabletop.init andsaveData的回调调用newQuote

您应该简单地删除对newQuote的saveData调用

票数 0
EN

Stack Overflow用户

发布于 2016-08-25 15:39:12

在回调中调用newQuote()。

从newQuote函数中删除saveData ()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39149315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档