0

我有一个onclick添加 HTML 的函数:

jQuery(".test").click(function() {
    jQuery(this).prevAll("input").val("5")
    jQuery(".after").append("<div><input /><a class='.test'>click doesn't work !</a></div>")
});

所以,当我点击我的班级时.test,该功能被触发。这行得通,但是我附加了另一个类.test,当我单击它时,不会触发该功能。为什么 ?谢谢。

小提琴:http: //jsfiddle.net/csL8G/3/

4

3 回答 3

2

jQuery.on()如果您使用的是 jQuery 1.7+,则可以使用方法

//.on( events [, selector] [, data], handler(eventObject) )

$(document).on('click', '.test', function(){
   //....
});

对于以前的版本,您可以使用.live().bind()方法。

于 2012-11-29T09:14:46.957 回答
1

使用它来检查动态添加的 .test 元素:

jQuery("body").on('click', '.test', function() {
   jQuery(this).prevAll("input").val("5");
   jQuery(".after").append("<div><input /><a class='.test'>click doesn't work !</a></div>");
});

如果您使用的 jQuery 低于 1.8,请使用 live 代替:

jQuery('.test').live('click', function() { ...

基本上原因是当 DOM 加载时,初始点击功能仅适用于文档中已经存在的元素。但是使用 on() 处理程序,您可以设置一个侦听器来检查领域(主体)内哪些内容具有测试类,并使点击事件在该类上工作......

于 2012-11-29T09:14:07.173 回答
0

嘿检查你写的html:

<a class=".test"></a>

它应该只是class="test"

jQuery("body").on('click', '.test', function() {
   jQuery(this).prevAll("input").val("5");
   jQuery(".after").append("<div><input /><a class='test'>click doesn't work !</a></div>");
});
于 2012-11-29T09:18:32.757 回答