我正在尝试添加一些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”的范围
任何帮助都会很棒!!
答案 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,以防你有其他情况可以节省一些代码。