我可以以某种方式组合这两个jQuery事件吗?

时间:2012-05-20 02:49:43

标签: jquery

我有以下内容。有什么方法可以将这两个事件结合起来吗?我需要具有某种foreach功能吗?

$('#AccountID').focus(function() {
    $('option[value="99"]', this).remove();
});

$('#TopicID').focus(function() {
    $('option[value="99"]', this).remove();
});​

3 个答案:

答案 0 :(得分:4)

您只需要一个不同的选择器:

$('#AccountID, #TopicID').focus(...);

或者,更好的是,添加一个公共类并使用它。

答案 1 :(得分:1)

这取决于你通过组合事件的意思。你可以这样做:

$('#AccountID, #TopicID')
    .focus(function () {
                $('option[value="99"]', this).remove();
            });

答案 2 :(得分:1)

jQuery选择器使用css选择器,因此选择器a,b表示选择a b

$('#AccountID, #TopicID').focus(function () {
    $('option[value="99"]', this).remove();
});

请注意,当您为jQuery函数提供上下文时,它将以这种方式执行:

$(this).find('option[value="99"]').remove();

所以你可以自己做,并保存(虽然很小)旅行和开销。

jQuery source code:

...
...
...
// HANDLE: $(expr, context)
// (which is just equivalent to: $(context).find(expr)
} else {
    return this.constructor( context ).find( selector );
}