多个元素的事件监听器 - jQuery

时间:2013-04-29 19:44:15

标签: jquery-ui jquery

在我正在研究的ASP MVC页面中,三个输入字段的值决定了第四个的值。邮政编码,州代码和其他称为香奈儿代码的东西将决定第四个字段的值,称为区域代码。

几周前我刚刚开始学习jQuery,所以我首先想到你可以放一个.change事件来检查其他两个字段中的值,如果它们存在,则调用一个单独的方法来比较三并确定Territory代码。但是,我想知道是否有更优雅的方法来解决这个问题,因为它似乎在不同的地方编写了很多相同的代码。

3 个答案:

答案 0 :(得分:19)

您可以通过指定多个选择器将回调绑定到多个元素:

$(".field1, .field2, .field3").click(function() {
    return field1 +
           field2 + 
           field3;
});

如果您需要根据单击的元素执行特定操作,另一个选项是创建一个执行实际计算的函数,然后从每个回调中调用该函数。

var calculate = function() {
    return field1 +
           field2 + 
           field3;
};

然后在每次点击时调用此功能:

$(".field1").click(function() {
    // Perform field1-specific logic
    calculate();
});

$(".field2").click(function() {
    // Perform field2-specific logic
    calculate();
});

// etc..

这意味着你不要重复自己。

答案 1 :(得分:3)

这对我有用 jQuery(document).on('scroll',['body', window, 'html', document], function(){console.log('multiple')});

答案 2 :(得分:0)

添加另一种可能性,以防万一这可能对某人有所帮助。此版本应适用于动态创建的字段。

$("#form").on('change', '#Field1, #Field2, #Field3', function (e) {        
    e.preventDefault();  

    console.log('something changed');           

});