jquery live on:选择器之后

时间:2012-01-06 10:07:06

标签: jquery css

如何将实时事件绑定添加到:选择器之后?这是我尝试的没有成功:

css规则

div.k-tabstrip .k-link:after
{
    content: url("/icons/close.gif");
    width: 16px;
    height: 16px;
    display: inline-block;
    margin: 0px;
    margin-left: 10px;
}

JS

$(document).on("click",".k-link:after", function(){ alert("Goodbye!"); });

2 个答案:

答案 0 :(得分:4)

你做不到。由:aftercontent属性添加的内容不会成为DOM的一部分,因此无法通过JavaScript访问。

请注意,内容未添加到DOM 所有中,因此它不会成为应用它的元素的一部分,并且它不会成为它自己的一个节点。它只是独自坐在那里,没有意识到周围的世界。

答案 1 :(得分:2)

James's answer 100%正确。

由于这种情况下的:after内容在没有javascript的情况下无用,您可以使用javascript首先添加元素:

$('.k-link').append('<img src="/icons/close.gif" class="after">');
$(document).on("click",".k-link .after", function(){ alert("Goodbye!"); });

当然,使用比after更合理,更有意义的类名。

如果元素确实具有javascript之外的函数(如果链接/按钮应该禁用js),并且不仅仅是装饰,那么它应该在HTML中开始。同样,任何内容而不是演示文稿的内容都应该是您的标记的一部分,而不是使用CSS生成的。