将多个Click事件附加到jquery中的一个对象

时间:2010-04-28 13:44:39

标签: jquery events onclick

我的网页中有链接,可以通过jquery链接几种类型的函数。

首先,他们得到标记哪一个是活动链接的标准行为:

$('.buttonlist li a').bind('click',
    function() {
        var li = $(this).parent();
        li.siblings('.aktiv').removeClass('aktiv');
        li.addClass('aktiv');
    }
); 

其次,如果他们应该得到它,他们中的一些会得到一个a(行为(这仍然可以与上面的按钮相同):

$('.ajaxLoad').bind('click',
    function(event) {
        event.preventDefault();
        var url = $(this).attr('href');
        $('.inhaltsblock').load(url);
    }
);

第三:在一个特殊页面上,我需要一些额外的行为:

if ($('#ansprechpartnerIntrotext').length > 0) {
    $('.buttonliste li a').bind('click', 
        function() {
            alert("Hello!");
            // Some Magic will happen around here
        }
    );
}

现在,我的理解是,只要点击链接,就会按照绑定的顺序在适当的时候触发所有这些事件。唉,他们没有 - 只触发ajaxload(数字2)事件,无论是第一个还是第三个都没有被调用。奇怪的是,顺序似乎没有任何影响 - 它总是被称为ajax调用,而不是其他调用。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

为什么只使用一次点击事件并将所有其他内容放在一个函数中,例如

$('button').click(function(){
doClassChange();

if ($('#ansprechpartnerIntrotext').length > 0 && $(this).attr('class') == .ajaxload) {
//do something
}
doAjaxyStuff();

});

添加标记以控制点击中发生的事情,这样您就可以使用开关来实现不同的事情。