美好的一天,
请协助:我将列表项添加到无序列表中。在列表项中,我有一个没有ID的锚。我试图调用click事件处理程序,但显然我做错了。
列出项目呈现:
this.RenderMeNav = function (params) {
var ul, li, a, heading;
var me = ARRAY.Search({
List: params.Permissions,
Properties: ["Group"],
Value: "me"
});
heading = $("<a href=\"javascript:void(0);\" class=\"heading\">Me<span class=\"icon-vertical icon-up\"/></a>");
ul = $("<ul />");
for (var p in me) {
li = $("<li></li>");
a = $("<a href=\"" + me[p].Url.replace("~/", "") + "\">" + me[p].Name + "</a>");
a.click(function (e) {
ShowProcessing();
ifrm.document.location.href = $(this).attr("href");
e.preventDefault();
});
li.append(a);
ul.append(li);
}
$("#menu").append(heading);
$("#menu").append(ul);
};
然后当点击其他内容时,我会调用此函数:
this.OpenSection = function (params) {
$("#menu li").each(function () {
if ($(this).text().toLowerCase() == params.Name.toLowerCase()) {
$(this).click(); //I FOUND THE ANCHOR AND NOW I WANT TO INVOKE IT'S CLICK EVENT
}
});
}
我尝试了一些类似的其他问题的建议,但无济于事。
此致
答案 0 :(得分:0)
要触发已定义的点击事件,您需要使用函数trigger(),
所以将代码更改为:
this.OpenSection = function (params) {
$("#menu li").each(function () {
if ($(this).text().toLowerCase() == params.Name.toLowerCase()) {
$(this).trigger('click'); //I FOUND THE ANCHOR AND NOW I WANT TO INVOKE IT'S CLICK EVENT
}
});
}
答案 1 :(得分:0)
您正在将事件附加到锚点,但会触发列表项的单击。尝试找到列表项中的锚点并触发它的点击:
this.OpenSection = function (params) {
$("#menu li").each(function () {
if ($(this).text().toLowerCase() == params.Name.toLowerCase()) {
$(this).find("a").trigger("click");
}
});
}