我有一个菜单,通常由用户点击。它执行一个函数
$('.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 :(得分: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,我不会发布完整的样本。