2012-05-09 14 views
27

Nuevo en jQuery. yo estaba tratando de establecer un detector de eventos para el siguiente control en mi página, que cuando se hace clic se mostrará una alerta:jQuery botón de entrada clic en el agente de escucha

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

Pero no funcionó.

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

¿Cómo se crea un detector de eventos para un control de botón de entrada con jQuery?

+0

posible duplicado de [Cómo manejar el botón Hacer clic en Eventos en jQuery?] (Http://stackoverflow.com/questions/4323848/how-to-handle-button-click -events-in-jquery) – givanse

Respuesta

54

Lo primero es que button() es una función jQuery ui para crear un button widget que no tiene nada que ver con el núcleo de jQuery, solo le da estilo al botón.
lo tanto, si desea utilizar el widget añadir archivos JavaScript y CSS de jQuery UI o bien eliminarlo, así:

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

Otra cosa que podría haber causado el problema es que si usted no espere a la entrada para representar y escribió el código antes de la entrada. jQuery tiene el ready function, o su alias $(func) que ejecuta la devolución de llamada una vez que el DOM está listo.
Uso:

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

Así que incluso si la orden es este va a trabajar:

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

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

DEMO

+2

Voy a agregar uno solo para escribirlo en un minuto, ¿tiene estas respuestas listas para funcionar o qué? – adeneo

+4

@adeneo. Sí ... están almacenados en una enorme Base de Datos, llamada mi cerebro enfermo y lento :) – gdoron

+0

Lo intenté también, pero sin la parte '$ (function() {...});'. Ahora funciona. Extraño. – Bob

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

Lo siento muy tarde –

3

Más sobre la respuesta de gdoron, también se puede hacer de esta manera:

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

sin la necesidad de colocarlos todos en

Cuestiones relacionadas