2012-05-09 103 views
27

jQuery的新品牌。 我試圖建立一個事件偵聽器在我的網頁下面的控制,點擊會顯示一個警告時:jQuery輸入按鈕點擊事件監聽器

<input type="button" id="filter" name="filter" value="Filter" /> 

但沒有奏效。

$("#filter").button().click(function(){...}); 

如何爲使用jQuery的輸入按鈕控件創建事件偵聽器?

+0

可能重複的[如何在jQuery中處理按鈕單擊事件?](http://stackoverflow.com/questions/4323848/how-to-handle-button-click -events-in-jquery) – givanse

回答

54

首先,button()是一個jQuery UI函數,用於創建一個與jQuery核心無關的button widget,它只是樣式化按鈕。
所以,如果你想使用的小工具添加的jQuery UI的JavaScript和CSS文件或可選擇地刪除它,是這樣的:

$("#filter").click(function(){ 
    alert('clicked!'); 
}); 

,可能造成你的問題的另一件事是,如果你不等待輸入被渲染並在輸入之前編寫代碼。 jQuery有,或者它的別名$(func),一旦DOM準備好就執行回調。
用法:

$(function(){ 
    $("#filter").click(function(){ 
     alert('clicked!'); 
    }); 
}); 

所以,即使順序是這樣它會工作:

$(function(){ 
    $("#filter").click(function(){ 
     alert('clicked!'); 
    }); 
}); 

<input type="button" id="filter" name="filter" value="Filter" /> 

DEMO

+2

我將加上一個這只是爲了在一分鐘內寫出來,你有這些答案准備去或什麼? – adeneo

+4

@adeneo。是的......他們被存儲在一個巨大的數據庫中,稱爲我的生病和緩慢的大腦:) – gdoron

+0

我也試過,但沒有'$(function(){...});'部分。它現在有效。奇怪。 – Bob

5
$("#filter").click(function(){ 
    //Put your code here 
}); 
+1

對不起,爲時已晚 –

3

更多gdoron的答案,它也可以做到這樣:

$(window).on("click", "#filter", function() { 
    alert('clicked!'); 
}); 

而不需要將它們全部放入