0

こんにちは、js ファイルに AjaxComplete 関数があり、さまざまなボタンに対して複数のクリックを発生させますが、すべて同じセレクターを参照しています。

クリック関数ごとに異なる ajaxComplete 関数が必要ですが、これは可能ですか?

jQuery(document).ready(function(){
var number = 1;
///////////////////////////////////////////////////
 /* The button to see the single portfolio items */
jQuery(document).on('click','.cover a, .prev_mimo, .next_mimo',function (coverclick){

    coverclick.preventDefault();
    coverclick.stopPropagation();
    coverclick.stopImmediatePropagation();
    number ++;
    /* Get the link */
    var coverlink = jQuery(this).attr('href');
    jQuery('.loadmask').show();
    jQuery('.loadmask-msg').show();
    jQuery('.upperdiv').animate({height : 'hide', opacity : 'hide', easing: 'EaseOutBounce'},'slow', function(){                                        jQuery('.upperdiv').html('');});
    jQuery('.upperdiv').load(coverlink+' .loading_div');


    return false;

});
jQuery('.upperdiv').ajaxComplete(function() {
        var  slideClass = 'all_project_images' + number;
        var  dentroClass = '.' + slideClass;
        jQuery('html,body').stop().animate({
                    scrollTop: jQuery(this).offset().top},
                    'slow');
        jQuery('.post_nav_portfolio').show();
        jQuery('.slideshow ul').removeClass().addClass(slideClass);
        jQuery(dentroClass).stop(false,true).responsiveSlides({
                    auto: true,
                    nav: true,
                    speed: 500});   
        jQuery('.upperdiv').animate({height : 'show', opacity : 'show', easing: 'EaseInBounce'},'slow');
        jQuery('.loadmask').hide();
        jQuery('.loadmask-msg').hide();
        jQuery('.cover').hover(function(){
                jQuery(this).children('.mimo_portfolio_image').stop().animate({opacity : 0.5},'fast');
                    }, function(){
                jQuery(this).children('.mimo_portfolio_image').stop().animate({opacity : 1},'fast');
                    }); 
        jQuery("a[rel^='prettyPhoto']").prettyPhoto();
        jQuery('.slideshow').hover(function(){
                jQuery(this).children('.rslides_nav').show('slow');
                }, function(){
                jQuery(this).children('.rslides_nav').hide('slow');
            });
            console.log(dentroClass);

            });

      });
4

1 に答える 1

2

関数内ajaxComplete()で をテストすることで、ajax 呼び出しを開始した元のボタンを確認できます$(this)

次のようなことを試してください:

 $('.buttons').ajaxComplete(function(){
      if($(this).hasClass('button1')){
         // do one thing
      }else if($(this).hasClass('button2')){
         // do another
      }
 });

この場合、ボタンのアクションを説明するために、ボタンにはさまざまなクラスが必要です。

<button class="buttons button1">button1</button>
<button class="buttons button2">button2</button>
于 2012-08-01T09:25:22.367 に答える