2013-05-29 91 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 
} });