我从两个事件处理程序中提取了一个函数,但是我想知道事件处理程序本身是否可以组合:
// when to hide/show the Submit link (select is changed)
$('.season select').on('change', function() {
var TVContainer = $(this).parents('.submission');
getTVData(TVContainer);
});
// when to hide/show the Submit link (validate on input changed)
$('.season input').on('keyup', function() {
var TVContainer = $(this).parents('.submission');
getTVData(TVContainer);
});
答案 0 :(得分:3)
您可以将处理程序提取到另一个函数:
function handler () {
var TVContainer = $(this).parents('.submission');
getTVData(TVContainer);
}
$('.season select').on('change', handler);
// when to hide/show the Submit link (validate on input changed)
$('.season input').on('keyup', handler);
答案 1 :(得分:2)
只需将处理程序设为单独的函数即可。要确保您在该this
中获得正确的function
,请使用bind(this)
。
function handler() {
var TVContainer = $(this).parents('.submission');
getTVData(TVContainer);
}
// when to hide/show the Submit link (select is changed)
$('.season select').on('change', handler.bind(this));
// when to hide/show the Submit link (validate on input changed)
$('.season input').on('keyup', handler.bind(this));
答案 2 :(得分:0)
您可以组合选择器并组合事件-尤其是因为您无法键入选择项。尝试一下。您可能要处理从输入退出后被调用的更改事件。
$('.season select, .season input').on('change keyup', function() {
alert("change or keyup called");
});