我是一个jQuery新手,我正在尝试构建一个动态的jQuery进度条。我需要做的是在页面上提供一系列复选框,这样当访问者选中或取消选中一个复选框时,它就会增加或减少进度条上显示的值。此外,我需要在访客达到最大金额时提醒他们(百分比)。任何帮助将不胜感激。下面的代码将绑定单击事件到进度条,但它不增加或减少正确,我的最大值似乎不工作?
这是我的想法:
Javascript:
<head>
<link type="text/css" href="css/ui-lightness/jquery-ui-1.8.18.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#budgetbar").progressbar({ value: 0 });
$(".option1").click(function () {
$("#budgetbar").progressbar({ value: 10 });
});
$(".option2").click(function () {
$("#budgetbar").progressbar({ value: 50 });
});
$(".option3").click(function () {
$("#budgetbar").progressbar({ value: 20 });
});
$(".option4").click(function () {
$("#budgetbar").progressbar({ value: 50 });
});
$("#budgetbar").progressBar({ max: 100, textFormat: 'fraction', callback: function(data) { if (data.running_value == data.value) { alert("Budget limit reached!"); } }} );
});
</script>
</head>
超文本:
<body>
<div id="budgetbar"></div>
<div>
<input type="checkbox" class="option1" />Expense 1 - $100,000<br />
<input type="checkbox" class="option2" />Expense 2 - $500,000<br />
<input type="checkbox" class="option3" />Expense 3 - $200,000<br />
<input type="checkbox" class="option4" />Expense 4 - $500,000<br />
* Max Expenses - $1,000,000
</div>
4条答案
按热度按时间7xllpg7q1#
如果给
input
复选框赋值,可以大大简化代码:这样,你就不必对每个复选框进行不同的处理。相反,你可以对所有的选项使用一个***处理程序。这使得调试和代码维护变得 * 非常 * 简单。
第二,当每个选项改变时,你想把 * total * 值赋给
progressbar
,而不仅仅是被点击的选项的值,使用change
代替click
,因为只有当复选框改变状态时才会触发。另外,您在调用中使用
progressBar
来设置参数(注意大写字母B),正确的名称是progressbar
。示例:http://jsfiddle.net/DjWCz/2/
lrpiutwd2#
您可以使用以下命令更改jQuery UI进度条的值
这只会将值设置为25(不会增加25)。
而且您可能需要检查是否选中了复选框:-)
我会这样做(未测试)
编辑,警报(可能有更好的方法):
vlju58qv3#
尝试将进度条的值存储在变量上,这样您就可以增加或减少它的值以进行正确的计算。
它将类似于:
此外,您需要检查复选框是否被选中,并且不要使用“click”事件。
当然,您需要在复选框中添加一个id。
希望能有所帮助!
qnyhuwrf4#
给你,希望有用。
干杯。