繁体   English   中英

jQuery似乎不适用于服务器控制

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM