无法更改标签的颜色

时间:2013-08-17 07:46:09

标签: jquery

我的演示代码:http://jsfiddle.net/4w3Hy/3/

我的第一个代码将html添加到ID为:Content:

的div中
$(".text").click(function() {
 $("#Content").html($(this).next(".text1").html());
});

在id:Content上,使用新的html,我尝试运行另一个jquery函数:

$(".click").click(function() {
 $('.click').css('color','');
 $(this).css( "color", "red" );
});

但不知怎的,这不会工作!!我做错了什么?看html http://jsfiddle.net/4w3Hy/3/

2 个答案:

答案 0 :(得分:2)

使用on将事件附加到动态附加到DOM的元素。在原始代码中,.click事件处理程序附加到具有类click的所有元素时,DOM上不存在.click元素,因此事件永远不会绑定到新元素。

使用on()允许我们将事件处理程序附加到父级,例如DOM上已有的document。然后会将.click元素附加到document,并在点击时触发传播到document的点击事件。一旦document收到click事件,它将确定事件是否被类.click的元素触发,如果是,它将执行我们的附加事件。如果您熟悉已弃用的live()方法,那么您几乎可以理解这个概念。

通常情况下,最好附加到靠近.click元素的静态父级,但由于我没有完整的HTML标记,因此我使用了document

$(".text").click(function() {
    $("#Content").html($(this).next(".text1").html()); });

$(document).on("click", ".click", function() {
    $('.click').css('color','');
    $(this).css( "color", "red" ); });

JS小提琴: http://jsfiddle.net/4w3Hy/5/

答案 1 :(得分:-1)

试试这个:

<强> DEMO

$(".text").click(function() {
    $("#Content").html($(this).next(".text1").html());
    $(".click").click(function() {

    $(this).css( {color:"red" });
});
});