我有动态创建的项目和按钮,我想通过使用 jquery 设置它们的样式来向用户展示正在发生的事情(我正在使用 AJAX)。每个项目如下所示:
<li class="items">
<div class="itemheading">
<div class="controls">
<span class="votes">1</span>
<form class="actions" method="POST">
<input type="submit" class="button plus" value="+1" data-plus="123">
</form>
<form class="actions" method="POST">
<input type="submit" class="button minus" value="-1" data-minus="123">
</form>
<form class="actions" method="POST">
<input type="submit" class="button delete" value="X" data-del="123">
</form></div><span class="title">Item title</span>
</div>
<span class="infotext">Item Description</span>
</li>
单击按钮时,我希望更新项目的样式。例如,如果单击 +1 按钮,则项目边框应淡化为绿色,然后在几秒钟内淡出至无,以表明该项目已被投票。
到目前为止,我想到的是以下内容:
$(".plus").live('click', function() {
$(this).css("background", "#fff");
但这不起作用。我想我可以$(this)
用来引用被点击的按钮,因为我已经在使用它来获取按钮的 data-tag 值:
var plus = $(this).data('plus');
另一个问题是,即使它确实有效,它也会设置按钮边框的样式,我需要以某种方式设置<div class="itemheading">
. 我只能说 .itemheading 元素的样式,但由于我将拥有该类的多个项目,因此我需要找到另一种方法。也许有一种方法可以引用元素的父元素,然后我可以得到它的父元素?
谢谢。非常感谢任何帮助。
更新: 所以人们可以看到代码的工作原理。
$(".plus").live('click', function() {
$(this).parents(".itemheading").css("background", "#000");
});