我正在使用JavaScript和Tabletop.js制作一个随机引用生成器。当我的页面加载时,自动初始化从我的电子表格中提取引号和生成的功能。除非单击页面/区域,否则我不希望它生成新的引用。
顺便说一句,这是一个粗俗的页面,它基于伟大的网站这是codepen页面:
http://codepen.io/JonLangel/pen/kXdmqP?editors=1010
以下是Codepen页面中的JS:
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();
});
});
答案 0 :(得分:0)
您调用saveData作为Tabletop.init andsaveData的回调调用newQuote
您应该在saveData
中删除对newQuote的调用答案 1 :(得分:0)
Ur在你的回调中调用newQuote()。
从你的saveData函数中删除newQuote()。
答案 2 :(得分:0)
在页面开头您正在初始化桌面,但在init的回调中:
callback: saveData //saveData is callback of init
编写此功能:
function saveData(data, tabletop) {
sheet_data = data;
newQuote(); //here You have newQuote called
}
从saveData中删除 newQuote(),并且在页面加载时不会生成引用
function saveData(data, tabletop) {
sheet_data = data;
}
答案 3 :(得分:0)
您可以添加点击事件处理程序并在
之后触发点击事件 $(".newquote").click(function(){
$.post("your.php".function(){
//code logic
})
})
答案 4 :(得分:0)
您在saveData
的回调中添加了Tabletop.init
。
当Tabletop
完成后,方法saveData
将被执行。
在方法saveData
中,您明确要求newQuote()
。
只需删除它:
function saveData(data, tabletop) {
sheet_data = data;
//newQuote(); // Remove the call to newQuote();
}