2010-03-29 18 views
5

Estoy usando Jeditable para la edición in situ. Uno de los controles con los que estoy trabajando tiene el tipo select. Cuando un usuario hace clic en el campo, se genera el control de select siguiente:jQuery + Jeditable: detectar cuando se cambia la selección

<div id="status" class="editable_select"> 
    <form> 
     <select name="value"> 
      <option value="Active">Active</option> 
      <option value="Inactive">Inactive</option> 
     </select> 
     <button type="submit">Save</button> 
     <button type="cancel">Cancel</button> 
    </form> 
</div> 

Lo que estoy tratando de averiguar es cómo usar jQuery para detectar cuando se cambia que el control select, sobre todo porque no tiene un atributo de ID.

Esto es lo que tengo hasta ahora, pero el evento no está recibiendo desencadenado:

$(document).ready(function() { 
    $('#status select').change(function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

ACTUALIZACIÓN

Actualización a jQuery 1.4.2 soluciona mi problema junto con el uso de Matt solución.

Respuesta

7

Probablemente lo encontrará porque el campo de selección se ha agregado a la página después de que se haya cargado (y después de que se hayan realizado los enlaces de evento).

fija Puede capturar los eventos de cambio si este es el caso, mediante el uso de live

$(document).ready(function() { 
    $('#status select').live('change', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

Nota que desde 1.7 Sin embargo, el método on() es la forma preferida para unir los controladores de eventos. El equivalente de lo anterior es;

$(document).ready(function() { 
    $(document).on('change', '#status select', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 
+0

Lo tengo que trabajar, gracias. Sin embargo, este evento no burbujea en IE por alguna razón. ¿Pensamientos? –

+0

jQuery debería hacerlo. ¿Qué código estás usando que no funciona? – Matt

+0

@Matt: estoy usando el código que me proporcionó; funciona bien en otros navegadores, excepto IE8. –

Cuestiones relacionadas