我需要更改clicked li元素的不透明度,所有li元素都具有相同的类
HTML
<ul>
<li><a href="#" class="someclass" selectedTeamId="1">test</a></li>
<li><a href="#" class="someclass" selectedTeamId="2">test</a></li>
<li><a href="#" class="someclass" selectedTeamId="3">test</a></li>
<li><a href="#" class="someclass"selectedTeamId="4">test</a></li>
<li ><a href="#" class="someclass"selectedTeamId="5">test</a></li>
</ul>
$(".someclass:not('.removeTeamSelect')").live("click", function () {
var teamId = $(this).attr("selectedTeamId");
$(".someclass").each(function () {
tempId=$(this).attr("selectedTeamId");
alert(tempId+"#"+teamId);
if (tempId == teamId) {
$(this).css({ "opacity": "1" });
}
else {
$(this).css({"opacity":"0.1"});
}
});
});
我缺少什么?
答案 0 :(得分:1)
我看到它更像是这样:
$('ul').on('click', ".horizontalTeams:not('.removeTeamSelect')", function() {
$(".horizontalTeams").each(function () {
$(this).css({"opacity":"0.1"});
});
$(this).css({"opacity":"1"});
});
正如我从您的代码中假设的那样,您将clicked元素的不透明度更改为1,将所有其他元素的不透明度更改为0.1?这段代码应该完全正确。
您应该使用 on 而不是 live , live 已弃用, on 执行相同的工作。< / p>
你应该使用事件委托(参见代码)作为答案中提到的@jogesh_pi。
答案 1 :(得分:1)
看一下http://jsfiddle.net/jogesh_pi/apXfE/ 这只是一个如何在代码中实现它的示例:
HTML:
<ul>
<li><a href="#" class="someclass">test</a></li>
<li><a href="#" class="someclass notthis">test</a></li>
<li><a href="#" class="someclass">test</a></li>
<li><a href="#" class="someclass">test</a></li>
<li ><a href="#" class="someclass notthis">test</a></li>
</ul>
JS:
$('ul').on('click', '.someclass:not(".notthis")', function(){
alert('w');
});