1

我想在点击时执行 2 个功能。分开来说,两者都很好用。但是,当我执行函数 A 和函数 B 之后,我遇到了问题。

问题来自函数B。我认为这是因为 $(this). 由于在 functionA 上执行的所有先例 var,它没有得到正确的 id。$(this) 调用的 id 必须是 #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);

对不起英语,我是法国人

洛伊克

4

1 回答 1

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);
});
于 2013-03-27T23:23:13.993 回答