Jquery实时选择器
我有这样的代码Jquery实时选择器,jquery,html,Jquery,Html,我有这样的代码 <div class="panel-footer"> <div class="post-activity"> <i class="loading-icon"></i> <button onclick="ChangeColor(this);">Change Color</button> </div> //Will be code </div>
<div class="panel-footer">
<div class="post-activity">
<i class="loading-icon"></i>
<button onclick="ChangeColor(this);">Change Color</button>
</div>
//Will be code
</div>
<div class="panel-footer">
<div class="post-activity">
<i class="loading-icon"></i>
<button onclick="ChangeColor(this);">Change Color</button>
</div>
<div class="comments-ch"></div>
</div>
不工作。因为,
是一个活动/附加/新代码
但是如果我运行这个代码,它就可以工作了
function ChangeColor(element)
{
$(element).closest(".panel-footer").find(".post-activity").css("background-color","#CC0000")
}
b因为在运行应用程序之前存在代码
如何访问附加/实时代码(.ch)?谢谢。live语法通常如下
$(".selector-class").live('event', function () {
//do your logic here
}
事件部分可以是单击(元素单击)、向上键控、向下键控等
干杯我建议您在标记中去掉
onclick
事件处理程序,至少这样可以将标记与javascript分开(有关更多信息,请参阅此)。因此,您的更改按钮应如下所示:
<button id="btnChange">Change Color</button>
您可以将两个函数组合在一个函数中,我保留它只是为了尽可能少地更改代码。这里正在工作。live的可能副本已被折旧,请先更新该副本,然后查看委托事件您是说要在元素存在之前更改其CSS吗?那是不可能的。如果没有,则只要在调用事件处理程序时元素存在,
ChangeColor
就会工作。单击按钮时是否存在
?我很困惑。
不存在。当可见/追加时,单击按钮。但是ChangeColor方法是存在的。这与OP的问题有什么关系/解决方法?非常好。“如何访问附加/实时代码(.comments ch)?-演示演示了如何执行此操作,并按预期工作。从评论来看,OP似乎在添加新元素之前更改CSS,他希望在添加元素后追溯应用CSS更改。我想这就是这些声明的意思。他似乎已经知道如何添加新元素以及如何选择现有元素。当然,我也可能是错的。据我所知,他就是不能改变元素的颜色,因为在创建函数时,元素还不存在,甚至在动态地将元素添加到DOM之后,函数也不能工作(在给出答案之前,我已经复制了这种行为)。但在OP澄清他的确切意思之前,我们只能猜测。。。
<button id="btnChange">Change Color</button>
$("#btnChange").click(function() {
ChangeColor(this);
});
function ChangeColor(element)
{
$(element).closest(".panel-footer").find(".comments-ch").css("background-color","#CC0000");
}