基于javascript的技能计算器在Firefox中不工作
javascript based skill calculator not working in Firefox
我对JavaScript非常陌生,只是真正研究了它在基于web的技能计算器中的使用。我遇到了一个样本,并根据我的需要进行了调整,但在几个不同的浏览器中进行测试时,我注意到在Firefox中,当按钮被点击时,计数器不会上升或下降,在点击10次后,我仍然得到消息"你已经达到了该技能的上限!"并且右键单击10次再次给我消息"你已经达到了该技能的上限!"正如我所期望的那样,但计数器本身并没有改变。
是否有一个简单的修复方法来让这个在Firefox中工作,或者我应该走另一条路?
CSS:.skillbutton {
background:url() no-repeat;
cursor:pointer;
width: 250px;
height: 12px;
border: none;
color: transparent;
}
#skill1counter {
margin-left: auto ;
margin-right: auto ;
font-size:0.6em;
}
#skill1 {
width: 250px ;
height: 12px ;
margin-left: auto ;
margin-right: auto ;
background-image:url(images/skill/skill1.png);
background-repeat:no-repeat;
}
HTML: <div id='skill1'>
<input type="button" class="skillbutton" onclick="SkillManager.increase('skill1')" oncontextmenu="SkillManager.decrease('skill1'); return false;" value="S1" />
</div>
<div id='skill1counter' style="font-weight: bold">0</div>
脚本:
<script type="text/javascript">
var SkillManager = (function() {
var max = 50,
skills = {
skill1: {
cur: 0,
max: 10
},
skill2: {
cur: 0,
max: 10
},
skill3: {
cur: 0,
max: 10
}
},
totalUsed = 0;
var increase = function(skill) {
if (totalUsed < max && skills[skill].cur < skills[skill].max) {
skills[skill].cur++;
totalUsed++;
updateDisplay(skill, skills[skill].cur, max - totalUsed);
} else if(skills[skill].cur === skills[skill].max) {
alert("You have maxed out that skill!");
} else {
alert("You have used all your skill points!");
}
};
var decrease = function(skill) {
if (skills[skill].cur > 0) {
skills[skill].cur--;
totalUsed--;
updateDisplay(skill, skills[skill].cur, max - totalUsed);
} else {
alert("You can't decrease a skill with 0 points in it!");
}
};
var updateDisplay = function(skill, value, totalRemaining) {
document.getElementById(skill + "counter").innerText = value;
document.getElementById("remainingPoints").innerText = totalRemaining;
};
return {
decrease: decrease,
increase: increase
};
}());
</script>
还有一个附带问题,我该如何添加if语句,即"如果技能1 =小于10,那么技能2不能增加",或者技能2要增加,技能1必须在10?
首先,您的HTML中缺少元素remainingPoints
。
<div id='remainingPoints'></div>
第二,在firefox中,将innerText
替换为textContent
,它应该可以正常工作,如下所示:
var updateDisplay = function(skill, value, totalRemaining) {
if(document.all){
document.getElementById(skill + "counter").innerText = value;
document.getElementById("remainingPoints").innerText = totalRemaining;
} else {
document.getElementById(skill + "counter").textContent = value;
document.getElementById("remainingPoints").textContent = totalRemaining;
}
};
小提琴。
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- JS可以在Chrome中工作,但不能在Firefox中工作
- Facebook登录按钮没有'不能在Firefox上工作
- JS在firefox中无法正常工作
- firefox插件:退出不工作的应用程序观察器
- :focus:一起活跃,不在firefox上工作
- 加载Soundcloud嵌入式播放器OnClick在FireFox中不工作
- javascript()onclick隐藏元素-dos'我不在firefox工作
- 异步加载的SVG过滤器feColorMatrix在Chrome中工作,而不是在Safari或Firefox中
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- HTML5 Canvas undo是'在IE或Firefox中无法正常工作
- 形式方法”;POST”;不在firefox工作
- Jquery倒计时显示NaN在Safari,在Chrome / Firefox工作良好
- IE 11似乎降低了.options的限制[]- firefox工作正常- IE <11工作正常
- javascript显示选项卡获胜'我不在firefox工作
- 登录功能没有'我不在firefox工作,但在chrome、IE、safari和opera上工作
- 尝试在html5中访问网络摄像头:Firefox工作,Chrome和Opera don't
- 在d3js布局中使用XML作为数据源;我不在firefox工作
- jquery切换不工作在chrome,但在IE和firefox工作