Прикрепление нескольких событий кликов к одному объекту в jquery - PullRequest
1 голос
/ 28 апреля 2010

У меня есть ссылки на моей веб-странице, которые получают несколько типов функций, связанных с помощью jquery.

Сначала они получают стандартное поведение маркировки, которое является активной ссылкой:

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

Во-вторых, некоторые из них получают поведение ajaxy, если они должны его получить (это могут быть те же кнопки, что и выше):

$('.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 голосов
/ 28 апреля 2010

Почему просто используйте одно событие щелчка и поместите все остальные вещи в функцию, например,

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

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

});

Добавьте флаги для управления тем, что происходит в щелчке, чтобы вы могли использовать переключатели, чтобы происходить разные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...