具有更新类的Fire事件

时间:2013-11-01 15:29:28

标签: javascript jquery

我正在更改点击的类别class2&我想触发class2而不是class1的事件。我知道我可以手动检查新课程&然后触发()它。还有其他办法吗?

在这里小提琴:http://jsfiddle.net/usXa3/

HTML:

<a href="#" class="class1">Click me!</a>

我有Jquery:

$('.class1').on('click', function(){
    console.log("class1 clicked");
    $(this).removeClass('class1').addClass('class2');
    $(this).off('click');
    //Do something here to fire class2 event.
});
$(document).on('click', 'class2', function(){
    console.log("class2 clicked");
});

我的解决方案 - 寻找替代方案:

$('.class1').on('click', function(){
    var thisClass = $(this).attr('class');
    if(thisClass == "class1");
    {
        $(this).removeClass('class1').addClass('class2');
    }
    else if(thisClass == "class2")
    {
        $(".class2").trigger( "click" );
    }
});

2 个答案:

答案 0 :(得分:1)

使用one()之类的,

$('.class1').one('click', function(){
    alert("class1 clicked");
    $(this).toggleClass('class1 class2');
    //Do something here to fire class2 event. 
    $('.class2').on('click', function(){
        alert("class2 clicked");
    });
});

Demo

答案 1 :(得分:1)

尝试DEMO

$('.class1').on('click', function () {
    console.log("class1 clicked");
    $(this).toggleClass('class1 class2');
    $(this).off('click').on('click', function () {
        console.log("class2 clicked");
    });
});

.toggleClass()