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