2011-11-08 63 views
0

我有一个通常由用户点击的菜单。它执行的功能识别触发点击此项目

$('.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

+0

确定它确实http://jsfiddle.net/bMLUn/ –

回答

3

你可以在许多方面做到这一点。如果你只是想使用一个索引,并基于该点击:

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

你也可以给他们每人一个ID,然后单击基于ID。

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

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

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

如上所述,您需要指定哪个元素正在触发触发器。

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

实际上会触发两个元素的点击。 James答案也可以。 (没有改变标记)

0

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

通常,要使用.index()获得元素的索引,并通过索引选择元素,请使用.eq()。由于您没有发布html,我不会发布完整的示例。