将javascript更新到最新版本的JQuery

时间:2014-02-03 04:40:50

标签: javascript jquery asp.net gridview

可能是一个可怕的头衔,但不知道如何陈述这个问题。

我正在创建一个嵌套的gridview。我正在使用以下示例:http://www.aspsnippets.com/Articles/ASPNet-Nested-GridViews-GridView-inside-GridView-with-Expand-and-Collapse-feature.aspx

使用该示例显示/隐藏嵌套gridview,直到您尝试使用JQuery v1.10.2运行它时,它非常有用。下面的脚本示例使用.live,它在v1.7 +中折旧。所以我按照建议更新到.on。问题是脚本的“减号”确实是“删除”。似乎发生的是“加”功能似乎再次触发。

以下是原文:

        <script type="text/javascript">
        $(document).ready(function () {
            $("[src*=plus]").live("click", function () {
                $(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
                $(this).attr("src", "../App_Themes/Theme1/minus.png");
            });
            $("[src*=minus]").live("click", function () {
                $(this).attr("src", "../App_Themes/Theme1/plus.png");
                $(this).closest("tr").after.remove();
            });
        });
</script>

她是我更新的方式

    <script type="text/javascript">
        $(document).ready(function () {
            $("[src*=plus]").on("click", function () {
                $(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
                $(this).attr("src", "../App_Themes/Theme1/minus.png");
            });
            $("[src*=minus]").on("click", function () {

                $(this).attr("src", "../App_Themes/Theme1/plus.png");
                $(this).closest("tr").after.remove();
            });
        });

但仍然没有去。再好像$(“[src * = plus]”)反复激发。

图像从加号更新为负号。

1 个答案:

答案 0 :(得分:5)

您需要使用event delegation方法:

$(document).ready(function () {
            $(document).on("click", "[src*=plus]", function () {
                $(this).closest("tr").after("<tr><td></td><td colspan = '999'>" + $(this).next().html() + "</td></tr>")
                $(this).attr("src", "../App_Themes/Theme1/minus.png");
            });
            $(document).on("click", "[src*=minus]", function () {
                $(this).attr("src", "../App_Themes/Theme1/plus.png");
                $(this).closest("tr").after.remove();
            });
        });