在javascript上使用onClick增加变量值,并在HTML表单上显示新值
Increasing a variable value with onClick on javascript and showing new value on HTML form
我正在为一款名为《英雄联盟》的游戏编写一个粉丝网站,我的用户想要创建角色构建,应该点击技能图标并给它一个点。(最多30分)
下面是一个实例:http://www.solomid.net/masteries.php
你基本上有30个点。当你点击一个技能图像时,它会为该技能添加一个点。
因为我是JS初学者&jQuery,我想问一下:
-
我现在可以创建一个div,并给它"onClick="alert('I am clicked.');"参数,所以当有人点击div时,它会发出警报。我需要更新一点,比如说:
- 用户点击div(例如,我们说它目前是0/4技能值)
- 0增加1,变为1/4。
- 用户重复3次,给予技能4/4点。
- 这个值应该被发布到PHP页面,因此,保存在form.
-
如你所见,当你点击skills时,它会在哈希字符串后生成一个int值。
;# 0332000000000000003000000000000000000000000000000
这个字符串的含义是,[skill1_value] [skill2_value] [skill3_value]…(skillLast_value)
如果你看到这样的值;
30001(其余为0)
这意味着,用户点击了3次"第一个技能",没有点击接下来的3个技能。在第五个技能上点击一次。
而不是张贴每一个表单值到PHP,我将只张贴哈希字符串的整数值。其余的计算将用PHP完成。
TL;博士版
- 想象3xdiv. (div1,div2,div3)
- 想象每个div在屏幕上包含一个可见的数字值。(val1, val2, val3)
- 所有值默认为0。
- 如果你点击div1, val1的值应该增加1。如果你在div2中点击,val2的值应该增加1,以此类推。 新值应该总是显示在HTML输出中。当用户点击"保存"时,应该生成如下字符串:(val1 + val2 + val3…)(例如716)
非常感谢任何帮助。我知道这是一个初学者的问题,所以文章的链接也会很有用。
这是一个有最大值和上限的例子,你必须使用多少点
http://jsfiddle.net/2Q2SS/2/var remaining = 5;
var MAX_VALUE = 4;
$('.clickybox').click( function(el) {
if (remaining == 0)
return;
var resBox = $(this).find('.result');
var curVal = resBox.attr('_data-value');
if (!curVal)
curVal = 0;
if (curVal >= MAX_VALUE)
return;
curVal++;
remaining--;
resBox.text(curVal + '/4');
resBox.attr('_data-value', curVal);
alert($('.result').map(function() {
var s = $(this).attr('_data-value');
if (s == undefined) s = '0';
return s;
}).get().join('-'));
});
编辑:更新为清晰
在div的onclick
事件期间,this
关键字默认绑定到该div元素,因此您始终知道哪个div触发了该事件。我猜你有一些JavaScript对象收集值,所以你可以这样做:
onDivClick = function() {
skillObj[this.id].value++; // Increments the stored value
this.innerHTML = skillObj.getDisplayValue(this.id); // Updates the div text
};
div1.onclick = onDivClick;
div2.onclick = onDivClick; // Same function can be assigned to multiple divs
细节可能会在您的实现中改变,但这是一般的想法。"保存"按钮可以通过skillObj
循环并建立一个字符串,然后由你将该字符串发送到服务器。
我不使用jQuery,但做这样的事情并不真的需要它。如果你需要特定的jQuery帮助,那么你应该考虑问一个更具体的问题。
希望对你有帮助。
将您的技能点击存储在散列或隐藏字段中。它将以字符串000开始。然后,您可以根据所单击的div增加正确的数字。
在某种程度上,你需要在你的哈希字符串中保持div(技能)和数字位置(索引)之间的映射。
也有一个限制,只能有技能水平在0…
下面是一个工作示例:http://jsfiddle.net/THubm/4/
和代码:
$(function(){
var numerators = $('.numerator');
$('.title').click(function(){
var numerator = $(this).next().children();
var newVal = +numerator.text() + 1;
numerator.text(newVal);
var hash = '';
numerators.each(function(){
hash += $(this).text();
});
alert(hash);
});
});
与其解释每个部分,不如让我知道你有什么问题。
- CSS/HTML:更改文本的值并在悬停时从中心展开
- 如何使用javascript localStorage保存用户选择并在不同的html页面中显示
- 如何获取javascript输入并在html中调用它
- javascript从选中的复选框中检索输入值,并在同一网页中显示多个html文件
- 使用javascript读取本地XML文件并在html页面中显示
- 获取 HTML 5 音频控制文件位置并在不使用 id 选择器的情况下更新 src
- 在DIV中动态插入HTML并访问新元素
- 在Javascript中解析json并在html上创建表
- 如何打开文件对象(HTML)并在谷歌应用程序脚本中解析它
- 如何等待一个HTML页面并在页面复杂创建时获得结果
- HTML按钮的作用类似于从键盘按下的键,并在某些对象或整个网站上起作用
- 从 html 表中选择一行(突出显示)并在单击按钮时发送值
- 如何使用 JQuQuery 解析 JSON 对象并在 HTML 页面中以表格格式打印输出
- 在 HTML 表中下拉,并在 javascript 中的表数据中选择值
- 如何通过HTML 5 javascript在本地ipad / iPhone上存储数据,并在设备上线时提交
- 保存(转义?)html 并在 json 对象中使用它
- 如何将markdown转换为html并在实践中使用
- 当ajax响应到达时,Onclick准备HTML并在react中呈现
- JavaFX:当我们构建html并在header中放置链接时,我们的javascript文件不工作.这是为什么?
- 如何通过YUI3返回HTML并在客户机上使用它