我有一個類名爲'窗體'的div。當頁面最初加載時,這個div是隱藏的(這是一個asp.net web窗體Panel控件)。當單擊搜索按鈕打開頁面上的搜索表單時,將顯示該面板。我需要捕獲用戶點擊時輸入的任何文本框,並讓它點擊搜索按鈕,我添加了一個名爲「form-default」的類。如何做一個jQuery查找隱藏的內部元素
我遇到的問題是我的事件處理程序沒有連接起來,因爲當頁面最初被加載時,'窗體'不可見,所以無法訪問我的文本框。我可以讓它們在表單打開時附加,但我試圖獲得一個可以加載到全局文件中的小代碼片段,以便我們可以很容易地將'form'的類名稱分配給div和'default-form' div中的按鈕在頁面中的多個位置具有默認按鈕。我不希望開發人員需要記住在UI更改時掛接呼叫。我可以使用live()來掛鉤嗎?還是我在做其他事情?
$(".form").find(".ec-text").keydown(function(e){
if (e.which == $.ui.keyCode.ENTER){
this.closest(".form-default").click();
}
});
編輯:這工作得很好:
$(".ec-text").live("keydown", function(e){
if (e.which == $.ui.keyCode.ENTER){
this.closest(".form-default").click();
}
});
,但我需要附加的事件處理程序的項目只有一個.FORM DIV中。應用此:
$(".form").find(".ec-text").live("keydown", function(e){
if (e.which == $.ui.keyCode.ENTER){
this.closest(".form-default").click();
}
});
不起作用。有任何想法嗎?
我覺得這個鏈接可以幫助: http://stackoverflow.com/questions/679958/在jQuery中如何選擇一個隱藏元素 – indrap
這可能不會有幫助,因爲控件沒有隱藏在html/css的意義上。當Visible屬性設置爲false時,它甚至不會由服務器端代碼在DOM中創建。 –
表單實際上是否有一個稱爲表單的類,或者它只是您嘗試選擇的表單元素?如果是這樣,在.form中省略點,它應該工作。此外,您不需要執行$('。form')。find('。ec-text')。 $('。form .ec-text')會很好。 – VNO