没有更好的方式来表达我的问题而不是向你展示一个例子。 http://jsfiddle.net/CA6aQ/
$(document).ready(function() {
$('#foo').click(function(e) {
e.preventDefault();
$('#bar').addClass("herro");
});
$('.herro').click(function(e) {
alert("Hello World!");
});
});
为什么这不起作用?
感谢。
编辑:澄清一下,当我向一个元素添加一个类时。该类触发器的click事件不会触发。
答案 0 :(得分:1)
由于动态添加了类,因此必须使用on()
函数(适用于jQuery 1.7及更高版本)。对于早期版本,请使用live()
。
$(document).ready(function() {
$('#foo').click(function(e) {
e.preventDefault();
$('#bar').addClass("herro");
});
$(document).on('click', '.herro', function() {
alert("Hello World!");
});
});
注意语法上的差异。我们做的是选择文档,将click事件绑定到它,检查是否在.herro
元素上触发了click事件,然后触发该函数。它的工作方式与click相同,只不过它可以使用动态元素(在您的情况下,您选择的类在页面加载时不存在)。
答案 1 :(得分:0)
。使用jQuery .on()来“委托”事件。
示例:http://jsfiddle.net/CA6aQ/2/
$('body').on('click', '.herro', function(e) {
alert("Hello World!");
});
另外,请将您的代码复制到Stackoverflow中,因为jsfiddle可能并不总是可用,这对任何人都没有帮助。 Stackexchange是一个社区帮助网站,试图为它的成功做出一点贡献:)