Jquery将事件更改为变量

时间:2013-05-29 04:13:07

标签: javascript jquery

有没有办法基本上可以做到这一点?

 var a= $(".object-type").change(function() 
 {
    //somecode
 }

然后调用a();在另一个功能,如

$("#selectAll").change(function () {
                    if($(this).attr("checked"))
                    {
                        a();
                    }
                    else
                    {
                      //some code
                    }

4 个答案:

答案 0 :(得分:4)

你可以这样做

$(".object-type").change(function() 
 {
    //somecode
 });


 $("#selectAll").change(function () {
   if(this.checked)
    {
         $(".object-type").trigger('change'); //Trigger the change event of a different element.
        // or just $(".object-type").change();
   //some code
 });

示例Demo

答案 1 :(得分:1)

var a= function() 
 {
    //somecode
 }

$(".object-type").change(a);

$("#selectAll").change(function () {
                    if($(this).attr("checked"))
                    {
                        a();
                    }
                    else
                    {
                      //some code
                    }

答案 2 :(得分:1)

如果您只想模拟change $(".object-type")事件,为什么不能尝试jQuery提供的trigger事件。

$("#selectAll").change(function () {
 if($(this).prop("checked"))
 {
     $(".object-type").trigger("change");
     //you could also use this 
     $(".object-type").change();
 }
 else
 {
    //some code
 } });

答案 3 :(得分:0)

你在这里要问的并不完全清楚。如果你想要两个不同的jquery触发器来使用相同的功能,那么你想从jquery触发器中提取回调函数:

var a = function(event){//do something};
$('.class1').change(a);
$('.class2').change(a);

当更改class1或class2时,将调用相同的函数。

如果你想要一个jquery触发器执行另一个jquery触发器,那么你可以随便trigger它:

$('.class1').change(function(event){//do something});
$('.class2').change(function(event){
    $('.class1').trigger('change');
    // do something else
});