2013-03-27 4 views
1

Я хочу выполнить 2 функции при нажатии. Отдельно, оба работают отлично. Однако у меня возникла проблема при выполнении функции А и после функции Б.JQuery один клик две функции

Проблема возникает от функцииB. Я думаю, это из-за $ (этого). Он не получает правильный идентификатор из-за всех прецедентов var, выполняемых на функции A. Идентификатор вызова $ (это) должен быть # prev-ajax, # next-ajax.

Вот код:

function A(){ 
    var link = $(this); 
    ajaxify(link.attr('href')); 
    window.location.hash = link.attr("href"); 
    $('.link').removeClass('current'); 
} 
function B(){ 
    e.preventDefault(); 
    var href = $(this).attr('href'); 
    var link = $(".link[href*= '" + href + "']:not(#prev-ajax, #next-ajax)"); 
    var $parent = link.parents('.element'); 
    var prev = $parent.prev().find('.link').attr('href'); 
    var next = $parent.next().find('.link').attr('href'); 
    $("#prev-ajax").attr('href', prev); 
    $("#next-ajax").attr('href', next); 
} 
$("#prev-ajax,#next-ajax").click(A).click(B); 

К сожалению для английского языка, я французский

Лоик

ответ

1

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

$("#prev-ajax,#next-ajax").click(function (e) { 
    e.preventDefault(); 
    var functionAlink = $(this); 
    var functionBlink = $(this); 

    // Function A code 
    ajaxify(functionAlink.attr('href')); 
    window.location.hash = functionAlink.attr("href"); 
    $('.link').removeClass('current'); 

    // Function B code 
    var href = functionBlink.attr('href'); 
    var link = $(".link[href*= '" + href + "']:not(#prev-ajax, #next-ajax)"); 
    var $parent = link.parents('.element'); 
    var prev = $parent.prev().find('.link').attr('href'); 
    var next = $parent.next().find('.link').attr('href'); 
    $("#prev-ajax").attr('href', prev); 
    $("#next-ajax").attr('href', next); 
}); 
+0

Большое спасибо! Обе функции отлично работают и один за другим! – lolo

+0

Рад, что это помогло! –

Смежные вопросы