是否有办法为页面上的不同元素执行相同的代码?

$('.class1').click(function() {
   some_function();
});

$('.class2').click(function() {
   some_function();
});

相反,你可以这样做:

$('.class1').$('.class2').click(function() {
   some_function();
});

谢谢


当前回答

另一种选择,假设你的元素存储为变量(如果你在一个函数体中多次访问它们,这通常是一个好主意):

function disableMinHeight() {
    var $html = $("html");
    var $body = $("body");
    var $slideout = $("#slideout");

    $html.add($body).add($slideout).css("min-height", 0);
};

利用jQuery链接,并允许使用引用。

其他回答

另一种选择,假设你的元素存储为变量(如果你在一个函数体中多次访问它们,这通常是一个好主意):

function disableMinHeight() {
    var $html = $("html");
    var $body = $("body");
    var $slideout = $("#slideout");

    $html.add($body).add($slideout).css("min-height", 0);
};

利用jQuery链接,并允许使用引用。

$('.class1, .class2').on('click', some_function);

Or:

$('.class1').add('.class2').on('click', some_function);

这也适用于现有的对象:

const $class1 = $('.class1');
const $class2 = $('.class2');
$class1.add($class2).on('click', some_function);

我有一个指向包含许多输入字段的对象的链接,这需要由相同的事件处理。因此,我简单地使用find()来获取所有需要具有事件的内部对象

var form = $('<form></form>');
// ... apending several input fields

form.find('input').on('change', onInputChange);

如果你的对象在链接的下一级children()而不是find()方法可以使用。

添加一个逗号分隔的类列表,如下所示:

jQuery(document).ready(function($) {

$('.class, .id').click(function() { 

//  Your code

    }

});

我们也可以像下面这样编码,我在这里使用了模糊事件。

$("#proprice, #proqty").blur(function(){
      var price=$("#proprice").val();
      var qty=$("#proqty").val();
      if(price != '' || qty != '')
      {
          $("#totalprice").val(qty*price);
      }
  });