[英]JQuery Doesn't seem to work for server control
我试图从我的aspx页上调用jQuery函数,但是虽然它之前运行正常,但它没有触发,但是我认为发生了导致这种问题的原因。
我有一个div用作按钮:
<div id="BtnContainer" runat="server" class="BtnContainer">add container</div>
我需要单击它以显示另一个弹出div
我正在使用此代码:
<script type="text/javascript">
$(document).ready(function () {
$("#BtnContainer").click(function () {
alert("working");
$("#ContainerPanel").slideToggle("slow");
});
});
</script>
我已经通过互联网和本地文件包含了jquery库,但是没有人起作用:
<script type="text/javascript" src="<%# ResolveUrl("assets/js/jquery.js") %>"></script>
并尝试
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
被告知,我在简单的html文件中尝试了上述操作,并且工作正常,并且触发了警报。
有什么解决办法吗?
页面呈现时检查HTML。 由于您在元素上使用runat="server"
,因此您正在更改ID。
而是尝试使用类名称来标识要将click事件附加到的元素。
$(document).ready(function () {
$(".BtnContainer").click(function () {
alert("working");
$("#ContainerPanel").slideToggle("slow");
});
});
您可以使用<%=BtnContainer.ClientID=>
属性来获取真实ID,如其他人所建议的那样,但是您需要在.aspx页面中包含javascript,而不是在(缩小的).js文件中保持整洁。
将C#方面与JS混合会有点难看(IMO)。
由于您具有runat='server'
,因此ASP.NET将为div
生成不同的ID。 用HTML进行检查。 您将必须使用<%=BtnContainer.ClientID=>
在脚本中(在.aspx内部)生成正确的ID:
$("<%=BtnContainer.ClientID=>").click(function () {
alert("working");
// more code here
});
或通过类DOM属性选择它,如下所示:
$(".BtnContainer").click(function () {
alert("working");
// more code here
});
当您将元素放入PlaceHolder中时,它会在PlaceHolderName_
添加ID
尝试使用
$("#MainPlaceHolder_BtnContainer")
在document.ready中,您的ID应该为<%= btndiv.ClientId%>。 抱歉,格式错误,请从stackexchange应用程序执行此操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.