如何捕获js函数中的单击按钮?

时间:2011-06-01 13:38:27

标签: javascript jquery

我必须这样按钮:

<input type='submit' id='submit' class='processAnimation'>
<input type='reset' id='reset' class='processAnimation'>

现在我有两个js功能。启动ajax请求时调用第一个函数,并在完成ajax请求时调用seconf函数。

this.showLoading = function () {
     backupsource = $('.processAnimation').attr('class');
     $('.processAnimation').removeAttr('class').addClass('disabled-btn processAnimation');
     $('.processAnimation').attr( 'backupsource', backupsource );
}

this.hideLoading = function () {        
    backupsource = $('.processAnimation').attr('backupsource');
    if( backupsource != undefined ) {
       $('.processAnimation').removeAttr('class').addClass( backupsource );
       $('.processAnimation').removeAttr('backupsource');
    }   
}

编辑:以上两个功能正在工作,移动花替换了点击按钮。请求完成后,按钮返回。问题是,当我点击一个按钮时,它会用移动的花替换所有按钮(class = procesAnimation)。

由于

3 个答案:

答案 0 :(得分:2)

由于您尚未发布您的点击事件绑定,我将快速猜测并说您的选择器设置不正确或与其他元素冲突。尝试这样的事情:

$('input').click(function(){
     switch( $(this).attr('id') ){
        case 'submit' :
            ShowLoading();
            break;
        case 'reset' :
            HideLoading();
            break;
      }
 });

并将以下两种函数初始化的语法更改为:

function ShowLoading(){
     //do your show loading procedure here
};

function HideLoading(){
    //do your hide loading procedure here
};

答案 1 :(得分:2)

这是使用您当前的代码

$('.processAnimation').click(function (){
   if($(this).attr('type')=='submit'){
      //submit has been clicked
   }else{
      //reset has been clicked
   }
});

但看起来你真的应该使用ID而不是类

答案 2 :(得分:1)

如果你有jQuery它很简单

$('#submit').click(showLoading)
$('#reset').click(hideLoading)

只是两种不同的事件绑定。

还是我错过了什么? :)