触发单行或一次单击多个元素上的事件

时间:2014-08-20 12:01:16

标签: jquery click

我有以下代码:

var entity = null;
var brand = null;

$('li.level1 > a[datanavigationnode="WF/001/DAM"]').each(function(){
  var thisEntity = $(this);
  var thisEntityParent = $(this).parent();

  var liLevel2 = $(thisEntityParent).find('li.level2');
  var brands = $('> a[datanavigationnode="WF/001/DAM/001"]', liLevel2);


  if(brands.length > 0) {
    entity = thisEntity;
    brand = $(brands[0]);

    return false;
  }                 
}); 


if(entity !== null && brand !== null) {
  var entityLi = $(entity).parent();
  var entityTypeLi = $(entityLi).parents('li.level0');

  var entityTypeHitArea = $('> div.hitarea', entityTypeLi);
  var entityHitArea = $('> div.hitarea', entityLi);

  $(entityTypeHitArea).click();
  $(entityHitArea).click();
  $(brand).click();
}

正如您所看到的,我在最后触发了三个点击事件。有没有办法在一行中做到这一点?我试过这个:(entityTypeHitArea, entityHitArea, brand).click();但它没有用。

2 个答案:

答案 0 :(得分:1)

我认为这可能是您正在寻找的内容:Is it possible to use multiple variables instead of selectors in jQuery

我不能评论性能。

希望这有帮助!

编辑:评论中的尼古拉斯是正确的。 $('#one').add('#two').add('#three').click();

添加小提琴:http://jsfiddle.net/37gky4s7/

答案 1 :(得分:0)

我认为你可以这样写:

entityTypeHitArea.add(entityHitArea).add(brand).trigger("click");

这是一个简单的DEMO ..

注意:不要让代码太复杂,只是为了避免查询"#id1,#id2",因为"#id1,#id2"方法比你想要的更快..