鉴于以下内容:
<div id="table-filters">
<ul>
<li class="active" onclick="myfunc();">blah</li>
<li onclick="myfunc();">blah</li>
<li onclick="myfunc();">blah</li>
<li onclick="myfunc();">blah</li>
</ul>
</div>
function myfunc() {
// Activate the LI clicked
$(this).addClass("active");
}
我希望我的JQUERY能够如下工作。将class =“active”添加到单击的LI中。
答案 0 :(得分:4)
从HTML中删除onClick
次来电,然后将以下内容放入.js文件中:
$("#table-filters li").click(function(){
$(this).addClass("active").siblings("li.active").removeClass("active");
// requested in comments: how to get id of LI clicked?
var thisID = $(this).attr("id");
});
答案 1 :(得分:1)
$("#table-filters li").click(function(){
$("#table-filters li.active").removeClass("active"); // remove current active
$(this).addClass("active"); // set new active
// Put more stuff here that you want to happen when clicked.
});
使用此方法添加事件侦听器通常被认为是“好”方式,使用onlick="BLAH"
添加侦听器被认为是一种不好的方式。
答案 2 :(得分:0)
您不需要使用.click(...);相反,你可以按照你想要的方式做到这一点:
<div id="table-filters">
<ul>
<li class="active" onclick="myfunc(this);">blah</li>
<li onclick="myfunc();">blah</li>
<li onclick="myfunc();">blah</li>
<li onclick="myfunc();">blah</li>
</ul>
</div>
function myfunc(li) {
// Activate the LI clicked
$(li).addClass("active");
}