2012-05-09 6 views
27

Nhãn hiệu mới cho jQuery. Tôi đã cố gắng thiết lập một event listener cho sự kiểm soát sau trên trang của mình mà khi nhấp sẽ hiển thị một cảnh báo:Nút đầu vào của jQuery, nhấn vào nút nghe sự kiện

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

Nhưng nó đã không làm việc.

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

Làm cách nào để bạn tạo trình xử lý sự kiện cho điều khiển nút nhập bằng jQuery?

+0

bản sao có thể có của [Làm thế nào để xử lý các sự kiện nhấn nút trong jQuery?] (Http://stackoverflow.com/questions/4323848/how-to-handle-button-click -nói-trong-jquery) – givanse

Trả lời

54

Điều đầu tiên đầu tiên, button() là một hàm jQuery ui để tạo một button widget không liên quan gì đến lõi jQuery, nó chỉ tạo kiểu cho nút.
Vì vậy, nếu bạn muốn sử dụng widget thêm javascript và CSS file jQuery ui hay cách khác loại bỏ nó, như thế này:

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

Một điều mà có thể gây ra cho bạn vấn đề là nếu bạn không chờ đợi đầu vào được hiển thị và đã viết mã trước đầu vào. jQuery có ready function hoặc bí danh $(func) thực thi gọi lại khi DOM đã sẵn sàng.
Cách sử dụng:

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

Vì vậy, ngay cả khi trình tự này là nó sẽ làm việc:

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

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

DEMO

+2

Tôi sẽ cộng một cái này chỉ để viết nó trong một phút, bạn có những câu trả lời sẵn sàng để đi hay không? – adeneo

+4

@adeneo. Có ... chúng được lưu trữ trong một DataBase lớn, được gọi là não bị bệnh và chậm của tôi :) – gdoron

+0

Tôi đã thử điều đó quá, nhưng không có phần '$ (function() {...});'. Nó hoạt dộng bây giờ. Lạ thật. – Bob

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

Xin lỗi, quá trễ –

3

Thông tin thêm về câu trả lời gdoron, nó cũng có thể được thực hiện theo cách này:

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

mà không cần phải đặt tất cả chúng vào