02/10/2008, 03:29
|
| | Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 16 años, 3 meses Puntos: 0 | |
Respuesta: Select Personalizado Este código amplia las funciones para que al sacar el mouse de la lista se cierre la lista, no es exactamente al pulsar sobre otra zona como hacen los select normales, pero mejor que nada...
en la función function selectReplacement(obj) {
al final antes de la linea obj.parentNode.appendChild(ul);
inserta: // Contribution by b_marinas
// close the list when the mouse goes out the list
// checks than the new target is a LI for determine the focus has changed.
ul.onmouseout = function(e) {
if (!e) var e = window.event;
var relTarg = e.relatedTarget || e.toElement;
if (relTarg.nodeName != 'LI'){
closeList (ul);
}
}
// end contribution by b_marinas
además añade la función siguiente dentro del script.
[I] // Contribution by b_marinas
// Close the list making the last selection visible as selected object
function closeList(obj) {
var lis = obj.getElementsByTagName('li');
for (var i=0; i<lis.length; i++) {
if (lis[i].className =='') { // not the selected list item
lis[i].className='';
lis[i].onclick = function() {
selectMe(this);
}
} else {
setVal(lis[i].selectID, lis[i].selIndex);
lis[i].className='selected';
obj.className =
obj.className.replace(new RegExp(" selectOpen\\b"), '');
lis.onclick = function() {
obj.className += ' selectOpen';
this.onclick = function() {
selectMe(this);
}
}
}
}
}
// end contribution by b_marinas |