2013-05-29 54 views
1

有没有办法我可以基本上做到这一点?jquery更改事件到一个变量

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

然后调用一个();像

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

没有,但你可以做'a.trigger( '变');' – Ohgodwhy

回答

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使用'this.checked'而不是jQuery方法。 – krishgopinath

+0

地狱是的。有效。万分感谢。 – starchild

1
var a= function() 
{ 
    //somecode 
} 

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

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

这不是完全清楚你问这里。如果你希望两个不同的jQuery触发利用相同的功能,那么你想提取从jQuery触发回调函数:

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

的Class1时为2级的改变同样的功能将被调用。

如果你想要什么,如果一个jQuery的触发执行另外一个,那么你可以litterally trigger它:

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

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

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