【发布时间】:2014-04-18 10:39:09
【问题描述】:
我想按列表项 (li) 实现检查列表。我使用 data-checked 属性来保持检查状态。我使用 css 选择器设置图标颜色('true' = 黑色,'false' = 白色)。
页面显示时工作正常,所有任务都显示白色图标,因为它们的默认数据检查值为“false”。但是当我单击列表项时,数据检查值被修改为'false',但颜色没有变为黑色。
我已经通过提醒他们检查了价值。他们是正确的。
我做错了什么?
谢谢。
HTML:
<ul>
<li data-id='1' data-checked='false' onclick='toggle_task(this);'>
<i class='fs fa-check'></i>
<span>Task A</span>
</li>
<li data-id='2' data-checked='false' onclick='toggle_task(this);'>
<i class='fs fa-check'></i>
<span>Task B</span>
</li>
</ul>
<button onclick='show_checked();'>Done</button>
CSS:
ul li[data-checked='true'] i:first-child {
color: #000000;
}
ul li[data-checked='false'] i:first-child {
color: #eeeeee;
}
Javascript:
function toggle_task(sender) {
if ($(sender).data('checked').toString == 'true') {
$(sender).data('checked','false');
} else {
$(sender).data('checked','true');
}
}
function show_checked() {
$(li).each(function() {
var text = $(this).data('id').toString() + ': ' + $(this).data('checked').toString();
alert($(this).data('checked'));
});
}
【问题讨论】:
-
不明白这个问题。请说出你想要什么
-
请证明一个有效的小提琴..
-
我想通过 javascript 更改的 css 和数据属性设置图标颜色(点击后)。例如,单击列表项将在“真”和“假”之间切换数据检查值。图标应该随着 CSS 设置而改变颜色,但事实并非如此。
-
只是切换一个类。为什么要涉及数据属性?
标签: jquery css custom-data-attribute