我的演示代码: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/
答案 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" });
});
});