将jquery函数附加到asp.net代码的span

时间:2010-06-20 11:43:06

标签: asp.net jquery

我正在尝试添加一些jquery来添加一个类。 我正在使用asp.net并尝试使用RegisterClientScriptBlock将下面的代码附加到我的元素。 “cphMain_ed1”在这个例子中是硬编码的,但是我通常会在这里传递一个参数只是为了方便。

   <script language="javascript" type="text/javascript">
    $(function () {
        $('.closeButton').click(function () {
            alert('called ok');
            $("cphMain_ed1").slideUp();
        });
    });
</script>

我的c#代码看起来像这样

  String csName = string.Format("ButtonClickScript_{0}", this.ID);
        Type csType = this.GetType();

        ////// Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;
        StringBuilder csText = new StringBuilder();
        // csText.Append("<script  type=\"text/javascript\"> HidePanel('" + this.ID + "')");
        csText.Append("<script  type=\"text/javascript\">DoIt()");
        csText.Append("</script>");
        cs.RegisterClientScriptBlock(csType, csName, csText.ToString());

我做错了什么因为函数没有附加到类“closeButton”的范围

任何帮助都会很棒!!

1 个答案:

答案 0 :(得分:1)

如果您要向要隐藏的用户控件容器添加一个类,那么您的结果是这样的:

<div class="container">
  <span class="closeButton">Close</span>
  Other content here
</div>

然后你可以完全取消ID和代码隐藏代码,并将你的jQuery减少到这个:

$(function() {
  $('.closeButton').click(function () {
    $(this).closest('.container').slideUp();
  });
});

它不是依赖于ID,而是找到您想要隐藏的与.closebutton相关的内容。在这种情况下,我们使用.closest()来获取与选择器匹配的树上最近的元素...添加到要关闭的容器中的类。还有其他功能可以相对查找,the tree traversal functions,以防你有其他情况可以节省一些代码。