我有很多元素,其中一些元素有两个类,而有些只有一个。

缩短代码:

<input type="text" class="first second" value="" />
<input type="text" class="second" value="" />
<input type="text" class="first" value="" />
<input type="text" class="second" value="" />
<input type="text" class="first second" value="" />
<input type="text" class="first second" value="" />


jQuery的:

var my_function = function() {
  // ...
};

$('.first').on('change', my_function);

$('.second').on('change', function() {
  // ...
  // here I want to trigger the above onchange function for the same element with class "first"
  // but "$(this).trigger('change');" will call both

  if (some_condition) {
    my_function(this); // <== here I get error "g.nodeName is undefined" in jQuery library
  }
});


如何仅触发第二个功能中的第一个功能?

最佳答案

尝试使用一个函数:

function f(obj) {
//stuf here
}
$('.first').on('change', function() {
  f($(this));
});

$('.second').on('change', function() {
  // ...other stuf here
 f($(this));
});


或使用名称空间:

$('.first').on('change.first', function() {
  // ...
});

$('.second').on('change.second', function() {
  // ...
  // here I want to trigger the above onchange function for the same element with class "first"
  $(this).trigger('change.first');
});

10-06 07:38