Jquery中的加/减增量器,如何推广?
我正在使用此代码
- 0 +
使用Javascript:
$(function(){ var valueElement = $('#VALUE'); function incrementValue(e){ valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment, 0)); return false; } $('#plus').bind('click', {increment: 1}, incrementValue); $('#minus').bind('click', {increment: -1}, incrementValue); });
有一个名为“VALUE”的字段的正/负增量子。 现在,我有一个表单,使用包含这样的150字段…有一种方法来推广这个代码以某种方式将函数传递给用户递增/递减的字段的名称? 否则,我必须复制此代码150次…
尝试这个,如果这有帮助:
我改变了一点我使用classes .plus, .minus
而不是ids #plus, #minus
$('.plus').click(function() { var sp = parseFloat($(this).prev('span').text()); $(this).prev('span').text(sp + 1); }); $('.minus').click(function() { var sp = parseFloat($(this).next('span').text()); $(this).next('span').text(sp - 1); });
在小提琴中查看这个: http : //jsfiddle.net/L2UPw/
把它们放在容器里面
- 0 +
这样你就可以相对选择显示器而不用太麻烦了
$(this).parent().children("span");
在各自的click
处理程序中。
在选择器中使用类而不是ID
$('.minus').bind('click', {increment: -1}, incrementValue);
和
< a id="minus1" class="minus" href="#">-< /a> ... < a id="minus150" class="minus" href="#">-< /a>
如果要对代码进行泛化,那么最好的方法是在影响值的两个元素上使用单个类,但添加一个data
属性,这是调整添加/删除量的因素。 然后,您可以将控件包装在单个包含div
,以便更轻松地进行DOM遍历。
通过使用此模式,您可以在页面上拥有控件的多个实例,所有按钮都由单击处理程序控制。 试试这个: