我有一個用戶控件內的按鈕。某些事件將usercontrol加載(添加)到佔位符 。 問題是這個按鈕的簡單的jquery點擊事件不起作用。 我錯過了什麼?選擇器應該是什麼樣子?jquery不與usercontrol工作
$('#mybutton').click(function() { alert("..."); });
或者我必須遍歷它嗎?
注:我設法執行的用戶控件代碼隱藏。
非常感謝。
我有一個用戶控件內的按鈕。某些事件將usercontrol加載(添加)到佔位符 。 問題是這個按鈕的簡單的jquery點擊事件不起作用。 我錯過了什麼?選擇器應該是什麼樣子?jquery不與usercontrol工作
$('#mybutton').click(function() { alert("..."); });
或者我必須遍歷它嗎?
注:我設法執行的用戶控件代碼隱藏。
非常感謝。
您需要在客戶端來檢查該ID是一樣的myButton的? ASP.NET用屬性runat="server"
替換所有用戶控件的客戶端ID。
您可以查看源代碼,看看修改後的ID。
在ASPX頁面,當您將佔位裏面的按鈕。客戶端ID自動更改。所以你必須用選擇器來使用Jquery End。 http://api.jquery.com/attribute-ends-with-selector/
您使用$符號用來查找動態控制ID。
$("input[id$=mybutton]").click(function() { alert("..."); });
試試這個:
$('#mybutton').live("click", function() { alert("..."); });
由於控制#mybutton被添加到頁面後$(文件)。就緒()火災,有沒有辦法可以jQuery的處理程序添加到該對象。 live意味着,無論何時以及如何創建一個元素,它的「click」事件將被綁定到作爲第二個參數提供的函數。
BTW。 #mybutton假定元素是標準html對象,或者是在render將ID和NAME保留爲mybutton之後的ASP控件。如果不是,請將$("#mybutton")
替換爲$("#<%= mybutton.ClientID %>")
或嘗試將ASP控件的ClientIDMode設置爲靜態,或者按類名訪問控件。
編輯:
去附加事件處理程序的前建議的方法是
$('#mybutton').on("click", function() { alert("..."); });
我有過類似的問題,發現這個解決方案:放置鏈接到jQuery的文件和一個空腳本標記
<script type="text/javascript" src="../scripts/jquery-1.10.1.min.js" />
<script type="text/javascript" language="javascript"></script>
,然後在用戶控制:使用這樣的控制的頁面(內標頭標記的)上本身(沒有標題標籤):
<script type="text/javascript" language="javascript">
$(document).ready(function() {
//your function here.
});
</script>
希望這會有所幫助!
當你通常將一些控件放在佔位符下時,它的ID更改爲'PlaceHolderID_YourConrolID',你確定按鈕的ID仍然是'mybutton'。 – 2011-04-23 10:04:53
試試這個:'$('#<%= mybutton.ClientID%>')。click(function(){alert(「...」);});' – 2011-04-23 10:07:11
沒有工作。有什麼建議麼 ? – Roobah 2011-04-23 11:05:41