2013-07-03 45 views
1

有沒有辦法確定下面的.change函數是否被jQuery .trigger調用?確定事件是否被.trigger()調用

$('input[name=TransactionType]').change(function() { 
     //Clear out values 
     $('input:text').val(''); 
     $('input:text').text(''); 

     //Display input fields 
     var radioValue = $(this); 

     $('#RightDiv').children().each(function() { 
      if (radioValue.attr('id') == $(this).attr('id')) { 
       $(this).show(); 
      } else { 
       $(this).hide(); 
      } 
     }); 
    }).filter(':checked').trigger('change'); 
+0

給處理程序添加一個alert或者console.log()? –

回答

5

您可以使用event.isTrigger

$('input[name=TransactionType]').change(function (e) { 
    if(e.isTrigger){ 
     //This was triggered using trigger('change') or .change() etc 
    } 
} 

Demo

,只有當它被觸發上面提到的,否則你可能會得到它的不確定,設置該標誌。但我無法找到任何文檔。

但我看到這在觸發器方法中的jQuery代碼中設置。

// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 
event.isTrigger = onlyHandlers ? 2 : 3; 
相關問題