繁体   English   中英

在动态添加的锚点上调用click事件

[英]Invoke click event on dynamically added anchor

美好的一天,

请协助:我正在将清单项目添加到无序列表中。 在列表项中,我有一个没有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
            }
        });
    }

我尝试了其他类似问题的一些建议,但无济于事。

问候

为了触发一个已经定义好的click事件,您需要使用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
            }
        });
    }

您将事件附加到锚点,但触发了列表项的单击。 尝试找到列表项中的锚点并触发其单击:

this.OpenSection = function (params) {
        $("#menu li").each(function () {
            if ($(this).text().toLowerCase() == params.Name.toLowerCase()) {
                $(this).find("a").trigger("click");
            }
        });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM