2012-09-05 14 views
7

Tengo un problema al realizar un evento click en un elemento HTML option elemento de trabajo.Vincular evento de clic en la opción de selección

Incluso un simple console.log('hello!'); no funcionará.

que estoy tratando con esto:

$('#mySelect option').bind('click', function(){ 
    console.log('hi!'); 
}); 

Se trabajó durante un tiempo, pero luego se detuvo.

+0

¿Qué ha cambiado últimamente? ¿Qué versión de jQuery estás usando? ¿cómo se está cargando? ¿En qué parte de la página (o incluir scripts) está llamando a esta función en relación con la carga del elemento? ¿El elemento se genera dinámicamente o estáticamente? – jcolebrand

+0

últimos cambios, creo que no importa porque no funcionará incluso si pago la última versión de trabajo ... la versión de jQuery es la última y se carga dinamicamente en el pie de página ... el elemento de opción se genera a partir del script php en onload –

+0

bien para empezar, si jQuery está cargado en el pie de página, ¿dónde está esto cargado? – jcolebrand

Respuesta

13

En mi caso siguiente código funciona

$('#myItem').change(function(){ 
      //do somthing 
}) 
+0

Esto es exactamente lo que quería, gracias. – Zy0n

2

Marque esta js violín -

http://jsfiddle.net/4W826/

HTML

<select id="mySelect"> 
       <option value="volvo">Volvo</option> 
       <option value="saab">Saab</option> 
       <option value="mercedes">Mercedes</option> 
       <option value="audi">Audi</option> 
     </select> 

JQUERY

$('#mySelect').bind('click', function(){ 
alert('hi!'); 
}); 

Cambio de 012.a Change

+1

gracias por ayuda! –

3

Puede enlazar usando .on() dando <select> id. En general, change es el evento llamado al <select>.

Por lo tanto, no es necesario mencionar option durante el evento de vinculación.

$(document).on('change','#mySelect', function(){<br> 
    console.log('hi!'); 
}); 

O

$('#mySelect').bind('change',function(){<br> 
    console.log('hi!'); 
}); 
0

Yo te sugeriría a utilizar .on() en lugar de .bind().

$('#mySelect').on('change', function(){ 
    var $this = $(this), 
     $value = $this.val(); 

    alert($value); 

}); 

jsFiddle

0

porque el cambio no lo suficientemente bueno para mí y no he encontrado una manera de activar la opción de hacer clic lo que hice es

$('#mySelect').click(function() { 
     if ($(this).attr('optionclick') == '1') { 
      $(this).attr('optionclick', '0'); 
     } 
     else { 
      $(this).attr('optionclick', '1'); 
     } 
    }); 
1

Esto resuelve el caso - para mis necesidades (atrapar el evento cuando parte del elemento seleccionado o en mi página se hace clic).no han validado la conducta táctil, pero aunque Firefox, Chrome parece estar bien w/este

$('.class_for_select').focus(function() { 
    // do something here 
}); 
1

ejemplo muestra indicará cómo cambiar los valores desplegables y el color para la opción de clic o el cambio de select

HTML:

<select name="options"> 
     <option value="1">Red</option> 
     <option value="2" selected="1">Green</option> 
     <option value="3">Blue</option> 
</select> 

jQuery:

$("select").on("click", function() { 
    debugger; 
    var sVal = $(this).val(); 
    $(this).css("background-color", "red"); 
    $(this).find("option").css("background", "white"); 
    $(this).find('option:selected').css("background-color", "red"); 
    $("input").val($(this).val()); 
}); 

Demo

Cuestiones relacionadas