クリックで2つの機能を実行したい。別々に、両方ともうまく機能します。ただし、functionA の実行時と functionB の実行後に問題が発生します。
問題は関数 B に由来します。$(this) のせいだと思います。functionAで実行されたすべての先行変数のため、正しい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);
英語でごめんなさい、私はフランス人です
ロイク