如果这不是发布此信息的正确位置,请道歉。我完全不熟悉HTML等等,但是我想在我的网站上放一个按钮,它会记住被按下了多少次,每次有人按下它都会给你一个数字,例如下一个素数。有了足够的googleing,我设法将一些(我希望是非常糟糕的代码)放在一起,我认为可以做到这一点。这就是我所拥有的(抱歉,如果格式不正确,我在复制粘贴方面遇到了麻烦)。
<head>
<title>Space Clicker</title>
</head>
<body>
<script type="text/javascript">
function isPrime(_n)
{
var _isPrime=true;
var _sqrt=Math.sqrt(_n);
for(var _i=2;_i<=_sqrt;_i++)
if((_n%_i)==0) _isPrime=false;
return _isPrime;
}
function nextPrime(_s,_n)
{
while(_n>0)if(isPrime(_s++))_n--;
return --_s;
}
var clicks = 0;
function hello() {
clicks += 1;
v = nextPrime(2,clicks);
document.getElementById("clicks1").innerHTML = clicks ;
document.getElementById("v").innerHTML = v ;
};
</script>
<button type="button" onclick="hello()">Get your prime</button>
<p>How many primes have been claimed: <a id="clicks1">0</a></p>
<p>Your prime: <a id="v">0</a></p>
</body>
问题是,当我将此代码放在我的wixsite上的iframe中时,每次查看该站点时似乎都会重新加载代码,因此它会再次启动计数器。我希望它按下按钮5次,它将保持在5,直到下一位访客出现并按下它。这样的事情可能吗?
你实际上并不需要iframe,你可以使用wixCode来做到这一点。 WixCode让你拥有一个数据库集合。您需要做的就是在每次点击时更新集合值。
假设您添加一个Events集合可以包含以下字段:id,eventName,clicksCount
使用eventName ='someButtonClickEvent'和clicksCount = 0添加一行,然后将以下代码添加到您的页面:
import wixData from 'wix-data';
$w.onReady(function () {});
export function button1_click(event) {
wixData.get("Events", "the_event_id")
.then( (results) => {
let item = results;
let toSave = {
"_id": "the_event_id",
"clicksCount": item.clicksCount++
};
wixData.update("Events", toSave)
})
}
现在你需要添加button1_click作为你的按钮的onClick处理程序(在wixCode属性面板中)。