我想创建以下内容但不确定最佳方法是什么。
我想要一个网页上的垂直项目列表。 每个项目都是可点击的。 当用户单击一个列表项时,我想显示它已被选中(通过在后台显示按钮图像。当再次单击相同的项目或单击任何其他列表项时,我想删除该图像,如果单击了另一个项目,选择图像显示在该项目后面。
有什么建议吗?
由于
答案 0 :(得分:2)
// catch a click on any of the <li> items
$('li').click(function(){
// store a reference to the specific <li> that
// was clicked.
var $li = $(this);
// toggle the class (if it's applied, it's removed.
// if it's removed, re-apply it)
$li.toggleClass('clicked');
// Now, if it's applied, remove the class from any
// other <li> (single item clicked at a time)
if ($li.hasClass('clicked')){
$li.siblings().removeClass('clicked');
}
});
答案 1 :(得分:2)
这在jQuery中特别令人愉快。小提琴:http://jsfiddle.net/HgVmm/3/
HTML:
<ul id='items' class='selectable'>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
JS:
// For a single list to act independent of other lists:
$('ul.selectable li').live('click', function () {
$(this).siblings('li.selected').removeClass('selected');
$(this).toggleClass('selected');
});
// For all `selectable` lists to act together:
$('ul.selectable li').live('click', function () {
$('li.selected').not(this).removeClass('selected');
$(this).toggleClass('selected');
});
CSS:
ul.selectable li { cursor: pointer; }
ul.selectable li.selected { background: red; } /* Style to taste */
答案 2 :(得分:1)
@ssdesign;我知道你接受了答案,但可能你可以查看这个 http://jsfiddle.net/sandeep/HgVmm/4/
$('li').click(function(){
$('li').removeClass('selected');
$(this).addClass('selected');
});