我有一个添加HTML的函数onclick
:
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
,当我点击它时,该函数不会被触发。为什么?
感谢。
答案 0 :(得分:2)
如果您使用的是jQuery 1.7 +
,则可以使用jQuery.on()
方法
//.on( events [, selector] [, data], handler(eventObject) )
$(document).on('click', '.test', function(){
//....
});
对于以前的版本,您可以使用.live()
或.bind()
方法。
答案 1 :(得分: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()处理程序,你设置一个监听器来检查领域(正文)中哪个内容有测试类,并使click事件在那个...
答案 2 :(得分: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>");
});