1

有没有办法确定.change下面的函数是否被 jQuery 调用.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');
4

1 回答 1

5

您可以使用event.isTrigger

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

演示

该标志仅在如上所述被触发时设置,否则您可能会得到未定义。我无法找到任何文档。

但我看到这是在触发器方法的 jquery 代码中设置的。

 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
 event.isTrigger = onlyHandlers ? 2 : 3;
于 2013-07-03T17:33:01.230 回答