当页面加载时,我的函数是 运行ning,但我只希望它在选定区域被选中时 运行
My function is running when page loads, but I only want it to run when a selected area is picked
我正在用 JavaScript 和 Tabletop.js 制作一个随机报价生成器。当我的页面加载时,从我的电子表格中提取报价并生成的功能会自动初始化。除非单击 page/area,否则我不希望它生成新报价。
顺便说一句,这是一个低俗的页面,基于 greatfu**ingstartupadvice.com
这是代码笔页面:
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();
});
});
您调用 saveData 作为 Tabletop.init 的回调,而 saveData 正在调用 newQuote
您应该简单地删除 saveData 中对 newQuote 的调用
你在回调中调用了 newQuote()。
从您的 saveData 函数中删除 newQuote()。
在页面开头您正在初始化 Tabletop,但在初始化的回调中:
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;
}
您可以在
之后添加点击事件处理程序并触发点击事件
$(".newquote").click(function(){
$.post("your.php".function(){
//code logic
})
})
您在 Tabletop.init
的回调中添加了一个 saveData
。
当 Tabletop
完成初始化时,方法 saveData
被执行。
在方法 saveData
中,您显式调用了 newQuote()
。
简单地删除它:
function saveData(data, tabletop) {
sheet_data = data;
//newQuote(); // Remove the call to newQuote();
}
我正在用 JavaScript 和 Tabletop.js 制作一个随机报价生成器。当我的页面加载时,从我的电子表格中提取报价并生成的功能会自动初始化。除非单击 page/area,否则我不希望它生成新报价。
顺便说一句,这是一个低俗的页面,基于 greatfu**ingstartupadvice.com
这是代码笔页面:
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();
});
});
您调用 saveData 作为 Tabletop.init 的回调,而 saveData 正在调用 newQuote
您应该简单地删除 saveData 中对 newQuote 的调用
你在回调中调用了 newQuote()。
从您的 saveData 函数中删除 newQuote()。
在页面开头您正在初始化 Tabletop,但在初始化的回调中:
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;
}
您可以在
之后添加点击事件处理程序并触发点击事件 $(".newquote").click(function(){
$.post("your.php".function(){
//code logic
})
})
您在 Tabletop.init
的回调中添加了一个 saveData
。
当 Tabletop
完成初始化时,方法 saveData
被执行。
在方法 saveData
中,您显式调用了 newQuote()
。
简单地删除它:
function saveData(data, tabletop) {
sheet_data = data;
//newQuote(); // Remove the call to newQuote();
}