在jQuery&中添加类在新类上运行函数

时间:2011-07-28 20:48:06

标签: jquery addclass

我正在尝试将class添加到href,然后在该新类上运行一个函数。

问题是一旦添加了类,我就无法获得任何js。

这是一个小提琴:

http://jsfiddle.net/3hp9f/2/

5 个答案:

答案 0 :(得分:1)

你有几个错误:

这有效:

$("a.theLink").click(function(event){
    event.preventDefault();
    $(this).addClass("live");
});

$("a.live").live('click',function(event){
    event.preventDefault();
    alert("YO!");
});

您需要阻止默认事件行为,并且还要添加一个面向未来的事件观察器,例如live()delegate(),因为您在设置绑定后将类添加到对象。

http://jsfiddle.net/AlienWebguy/3hp9f/16/

答案 1 :(得分:0)

您在对象拥有类之前附加了a.live事件处理程序,将处理程序移到第一个,即

$("a.theLink").click(function(){
    $(this).addClass("live");
    $("a.live").click(function(){
         alert("YO!");
         return false;
     });
    return false;
});

这不是最好的方法,但我希望它能告诉你什么是错的。

答案 2 :(得分:0)

您可以使用liveAPI 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,则只会触发第一个单击事件。