绑定Jquery点击注入的html

时间:2013-06-11 09:16:36

标签: jquery asp.net binding label literals

很抱歉,如果之前已经询问过,但我已经花了一些时间在网上搜索,但找不到解决方案。

我正在使用ASP.NET和JQuery。

基本上我将一些HTML图标从服务器端返回到客户端,因为它们是由XML文件自动生成的。图标的类名称为“报告”。

当我点击我的报告时,我的Jquery脚本不再触发,因为我使用文字或标签将它们带入。

在母版页

// Load reports
    $(".CLIButton").click(
        function () {

            var Data = $(this).attr('path');

            Data = JSON.stringify({ "xmlFile": Data });

                $.ajax({

                    url: "ProcessReports.aspx/ReturnStyledPage",
                    data: Data,
                    type: "POST",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function (mydata) {
                        $("#ReportContent").html(mydata.d);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("There has been an error in this Ajax call 'ProcessReports.aspx/ReturnStyledPage'");
                    },
                    async: false
                });
            }
    );

    $(".Report").click(
        function () {
            alert("hi");
        });

Aspx页面用于创建html

 [WebMethod]
    public static string ReturnStyledPage(string xmlFile)
    {
        // Build report page

        //Load XML
        XmlDocument document = new XmlDocument();
        // document.Load(Server.MapPath((string)Session["ReportsXML"]));
        document.Load(HostingEnvironment.MapPath("/Assets/XML/" + xmlFile.Replace("/","") + ".xml"));

        //Create Navigator
        XPathNavigator navigator = document.CreateNavigator();

        //Load XSLT
        XslCompiledTransform transformer = new XslCompiledTransform();
        transformer.Load(HostingEnvironment.MapPath("/Assets/XSLT/FormatReports.xslt"));

        //Transform XML Data
        StringWriter output = new StringWriter();
        transformer.Transform(navigator, null, output);

        return output.ToString();
    }

我已经阅读过关于尝试将click事件绑定到我使用文字返回的html但是在我尝试过时它不起作用。

谢谢

2 个答案:

答案 0 :(得分:1)

$('#ReportContent').on('click', '.Report', function () {
    alert("hi");
})

答案 1 :(得分:1)

在最近的静态容器上委派事件:

$("#ReportContent").on('click',".Report",
        function () {
            alert("hi");
        });