识别此项目点击了触发器

时间:2011-11-08 16:20:30

标签: javascript jquery

我有一个菜单,通常由用户点击。它执行一个函数

$('.MenuItem').click(function() {
 document.writeln($(this).html() + ' was clicked');   
});

我遇到了一个新的需求,我需要以编程方式触发菜单项的单击。所以我试过

//I want to trigger click and identify the item that has been clicked. Normally, I just use 
//the this object, but on a trigger I don't know how to assign this so `.html()` functions.

//This doesn't work as intended.   
//$('.MenuItem').trigger('click','Item1');

如何识别点击trigger的项目?

Fiddle

4 个答案:

答案 0 :(得分:3)

你可以通过多种方式实现这一目标。如果您只想使用索引并根据它点击:

$(".MenuItem").eq(1).click();

你也可以给每个人一个ID并根据ID点击。

答案 1 :(得分:1)

$('.MenuItem').trigger('click'); //will trigger click event on all elements with .MenuItem ClassName

您需要更具体,例如使用元素ID

$('#MenuItemID1').trigger('click');

答案 2 :(得分:0)

$('.MenuItem:nth-child(1)').trigger('click');       

如前所述,您需要指定触发哪个元素。

$('.MenuItem').trigger('click');

实际上会触发两个元素的点击。  James回答也会有效。 (不改变标记)

答案 3 :(得分:0)

我会使用索引来做到这一点。根据你的html,获取被点击元素的索引,然后触发同样具有该给定索引的目标元素的click事件。

通常,要获取元素的索引,使用.index(),并按照索引选择元素,可以使用.eq()。由于你没有发布html,我不会发布完整的样本。