答案 0 :(得分:1)
你有几个错误:
这有效:
$("a.theLink").click(function(event){
event.preventDefault();
$(this).addClass("live");
});
$("a.live").live('click',function(event){
event.preventDefault();
alert("YO!");
});
您需要阻止默认事件行为,并且还要添加一个面向未来的事件观察器,例如live()
或delegate()
,因为您在设置绑定后将类添加到对象。
答案 1 :(得分:0)
您在对象拥有类之前附加了a.live事件处理程序,将处理程序移到第一个,即
$("a.theLink").click(function(){
$(this).addClass("live");
$("a.live").click(function(){
alert("YO!");
return false;
});
return false;
});
这不是最好的方法,但我希望它能告诉你什么是错的。
答案 2 :(得分:0)
您可以使用live
(API Ref)方法,将事件附加到选择器的所有当前和未来匹配项:
$("a.live").live('click', function(){
alert("YO!");
return false;
});
答案 3 :(得分:0)
在这里:http://jsfiddle.net/Skooljester/KcG8g/。您需要使用.live
代替.click
。
答案 4 :(得分:0)
尝试this
$("a.theLink").click(function(){
$(this).unbind('click').addClass("live");
return false;
});
$("a.live").live('click', function(){
alert("YO!");
return false;
});
代码并不是你如何拥有它,但存在一些问题。我使用$('')。live但你可能想要在第一次点击事件中绑定事件。另请注意,如果您从事件中返回false而不是使用preventDefault,则只会触发第一个单击事件。