再问个,如何固定select框的宽度不变,并且选择的时候 让下拉列表每行的内容完全显示(在线.散分) 补充一点:最好是这样解决,最好是鼠标放在下拉框的某个选项上,通过onmouseover显示该选项的全部内容 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Floating div display perproty 用一个DIV模拟显示数据当点下拉列表的时候显示div下拉列表值不进行下拉:即下拉列表的onclick事件只执行显示div 你的这段code,在FF上会工作的好好的,在IE上不行了。这是IE的一个限制。 <select name="test" size="1" style="width:50;"> <option>1 </option> <option>2 </option> <option>3 </option> <option selected=true>55555555555555555555555555555555555555555 </option> </select> 在IE上,当下拉框拉下时,555555。。那个option就不会完全显示,这没有什么解决办法。这个网页上有我见过的最好的解决办法(除了用JavaScript实现的模拟ComboBox,自己实现一个也挺麻烦的,要考虑鼠标,键盘,等等很多组合,才会实现一个和Select的行为一样的东西).http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php 楼主使用javascript自己封装一个select对象吧你提出的问题,现有的解决办法都无法达到你的要求 <script> function showTitle(){ event.srcElement.title=event.srcElement.options[event.srcElement.selectedIndex].text; }</script><select name="test" size="1" style="width:50;" onmouseover="showTitle()" onchange="showTitle()"> <option>1 </option> <option>2 </option> <option>3 </option> <option selected=true title='sdsds'>55555555555555555555555555555555555555555 </option> </select> 不知道这样算不算完美解决,呵呵 那个多余的代码 title='sdsds' 是忘记删掉的没用代码,记得多给分阿,哈哈 楼上的在IE6 和FF 下好像不好用哦。我建议LZ 写自己的select 我给个自己写的(用DIV实现,IE FF下测试) 测试页面<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <link href="./styles/selectNode.css" rel="stylesheet" type="text/css"/> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <script type="text/javascript" src="./scripts/selectNode.js"></script> <script type="text/javascript"> function init(){ createSelect('test'); createSelect('test1'); } function test(id){ var obj = document.getElementById(id); alert(obj.getAttribute('value') + "======" +obj.innerHTML) } </script> </HEAD> <BODY onload='init()'> <div id=test> </div> <div> <div value='1'>aaa</div> <div value='2'>bbb</div> <div value='3'>ccc</div> <div value='4'>ddd</div> </div> <div id=test1> </div> <div> <div value='1'>aaa</div> <div value='2'>dfdf</div> <div value='3'>ccc</div> <div value='4'>ddd</div> </div><br><br> <input type='button' onclick='test("test")' value='testData'/> <input type='button' onclick='test("test1")' value='test1Data'/> </BODY></HTML> CSS 和JS.value_div_bg{ width:200px; height: 24px; border: 1px solid #888888; float: left; padding-top: 5px; padding-left: 3px; background: url( ../images/select/select_bg.bmp ) 98% center no-repeat; } .data_div{ border: 1px solid #888888; width: 100%;background-color: white;display:none; position:absolute; } .itemDiv{ display: block; padding-left: 3px; padding-top: 3px; width:100%; height: 20px; border-top:1px dotted white; border-bottom:1px dotted white; cursor: pointer; } .pickDiv{ display: block; width:100%; background-color: #DDDBD6; border-top:1px dotted black; border-bottom:1px dotted #888888; cursor: pointer; padding-left: 3px; padding-top: 3px; height: 20px; } a:link { color: #000; text-decoration: none; } a:visited { color: #000; text-decoration: none; } a:hover { color: #000; text-decoration: none; } a:active { color: #000; text-decoration: none } //浏览器类型以及版本 var brow = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie (\d+)/)) ? brow.ie = s[1] : (s = ua.match(/firefox\/(\d+)/)) ? brow.firefox = s[1] : (s = ua.match(/chrome\/(\d+)/)) ? brow.chrome = s[1] : (s = ua.match(/opera.(\d+)/)) ? brow.opera = s[1] : (s = ua.match(/version\/(\d+).*safari/)) ? brow.safari = s[1] : 0; function addEventHandler(element,eventN,eventM){ if(!element){ return; } if(element.addEventListener){ element.addEventListener(eventN,eventM,false); }else if(element.attachEvent){ element.attachEvent('on'+eventN,eventM) }else{ element['on'+eventN] = eventM; } } function removeEventHandler(element,eventN,eventM){ if(!element){ return; } if(element.removeEventListener){ element.removeEventListener(eventN,eventM,false); }else if(element.detachEvent){ element.detachEvent('on' + eventN,eventM); }else{ element['on' + eventN] = null; } } function getNode(id){ return typeof(id) == 'string' ? document.getElementById(id) : id; } function createSelect(id){ var obj = getNode(id); var dataAll = getNextChild(obj); if(dataAll){ if(dataAll.tagName == "DIV"){ if(dataAll.innerHTML != ''){ obj.className = 'value_div_bg'; dataAll.className = 'data_div'; dataAll.style.top = obj.offsetTop + obj.offsetHeight + 'px'; dataAll.style.left = obj.offsetLeft + 'px'; dataAll.style.width = (brow.ie ? obj.offsetWidth : obj.clientWidth) + 'px'; addEventHandler(document,'click', function(e){ var event = e.target || window.event.srcElement; if(obj == event){ dataAll.style.display = 'block'; return; } if(dataAll != event) dataAll.style.display = 'none'; } ) changeCurData(obj,getFirstChild(dataAll.childNodes[0])); var data = getChildren(dataAll); for(var i=0; i<data.length;i++){ data[i].className = "itemDiv"; addEventHandler(data[i],'mouseover', function(e){var event = e.target || window.event.srcElement;event.className = 'pickDiv';} ); addEventHandler(data[i],'mouseout', function(e){ var event = e.target || window.event.srcElement;event.className = 'itemDiv';} ); addEventHandler(data[i],'click', function(e){var event = e.target || window.event.srcElement;dataAll.style.display = 'none';changeCurData(obj,event);} ); } }else{ document.body.removeChild(dataAll); } } } } function changeCurData(objChange, objSource){ objChange.setAttribute('value',objSource.getAttribute('value')); objChange.innerHTML = objSource.innerHTML; } function getNextChild(obj){ var child = obj.nextSibling; var childTagName = obj.tagName; while (child) { if (child.tagName == childTagName.toUpperCase()) { return child; } child = child.nextSibling; } return null; } function getFirstChild(child){ while (child) { if (child.nodeType == 1) { return child; } child = child.nextSibling; } return null; } function getChildren(parentObj){ var child = parentObj.firstChild; var items = []; while (child) { if (child.nodeType == 1) { items.push(child); } child = child.nextSibling; } return items; } 请教thinkbox的使用~ json问题 在线等…… JS的超链接· js如何实现tab异步加载。 用 <a href="??????">用户桌面</a>能不能返回呀????? js赋值问题? 读取控件的值,控件一定要放表单里面吗? 高手:如何设置页眉? 一个急待解决的问题?? js 获取html指定id内图片地址图片,怎么写? EXRJS结合ASP.NET进行开发,文本框带html字符报错 请问call(),apply()的具体用法
display perproty
当点下拉列表的时候显示div
下拉列表值不进行下拉:即下拉列表的onclick事件只执行显示div
<select name="test" size="1" style="width:50;">
<option>1 </option>
<option>2 </option>
<option>3 </option>
<option selected=true>55555555555555555555555555555555555555555 </option>
</select> 在IE上,当下拉框拉下时,555555。。那个option就不会完全显示,这没有什么解决办法。这个网页上有我见过的最好的解决办法(除了用JavaScript实现的模拟ComboBox,自己实现一个也挺麻烦的,要考虑鼠标,键盘,等等很多组合,才会实现一个和Select的行为一样的东西).http://www.hedgerwow.com/360/dhtml/ui_select_with_fixed_width/demo.php
你提出的问题,现有的解决办法都无法达到你的要求
function showTitle(){
event.srcElement.title=event.srcElement.options[event.srcElement.selectedIndex].text;
}
</script>
<select name="test" size="1" style="width:50;" onmouseover="showTitle()" onchange="showTitle()">
<option>1 </option>
<option>2 </option>
<option>3 </option>
<option selected=true title='sdsds'>55555555555555555555555555555555555555555 </option>
</select>
不知道这样算不算完美解决,呵呵
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<link href="./styles/selectNode.css" rel="stylesheet" type="text/css"/>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript" src="./scripts/selectNode.js"></script>
<script type="text/javascript">
function init(){
createSelect('test');
createSelect('test1');
}
function test(id){
var obj = document.getElementById(id);
alert(obj.getAttribute('value') + "======" +obj.innerHTML)
}
</script>
</HEAD> <BODY onload='init()'>
<div id=test>
</div>
<div>
<div value='1'>aaa</div>
<div value='2'>bbb</div>
<div value='3'>ccc</div>
<div value='4'>ddd</div>
</div> <div id=test1>
</div>
<div>
<div value='1'>aaa</div>
<div value='2'>dfdf</div>
<div value='3'>ccc</div>
<div value='4'>ddd</div>
</div>
<br>
<br>
<input type='button' onclick='test("test")' value='testData'/>
<input type='button' onclick='test("test1")' value='test1Data'/>
</BODY>
</HTML>
width:200px;
height: 24px;
border: 1px solid #888888;
float: left;
padding-top: 5px;
padding-left: 3px;
background: url( ../images/select/select_bg.bmp ) 98% center no-repeat;
}
.data_div{
border: 1px solid #888888; width: 100%;background-color: white;display:none;
position:absolute;
}
.itemDiv{
display: block;
padding-left: 3px;
padding-top: 3px;
width:100%;
height: 20px;
border-top:1px dotted white;
border-bottom:1px dotted white;
cursor: pointer;
}
.pickDiv{
display: block;
width:100%;
background-color: #DDDBD6;
border-top:1px dotted black;
border-bottom:1px dotted #888888;
cursor: pointer;
padding-left: 3px;
padding-top: 3px;
height: 20px;
}
a:link {
color: #000;
text-decoration: none;
}
a:visited {
color: #000;
text-decoration: none;
}
a:hover {
color: #000;
text-decoration: none;
}
a:active {
color: #000;
text-decoration: none
}
//浏览器类型以及版本
var brow = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie (\d+)/)) ? brow.ie = s[1] :
(s = ua.match(/firefox\/(\d+)/)) ? brow.firefox = s[1] :
(s = ua.match(/chrome\/(\d+)/)) ? brow.chrome = s[1] :
(s = ua.match(/opera.(\d+)/)) ? brow.opera = s[1] :
(s = ua.match(/version\/(\d+).*safari/)) ? brow.safari = s[1] : 0;
function addEventHandler(element,eventN,eventM){
if(!element){
return;
}
if(element.addEventListener){
element.addEventListener(eventN,eventM,false);
}else if(element.attachEvent){
element.attachEvent('on'+eventN,eventM)
}else{
element['on'+eventN] = eventM;
}
}
function removeEventHandler(element,eventN,eventM){
if(!element){
return;
}
if(element.removeEventListener){
element.removeEventListener(eventN,eventM,false);
}else if(element.detachEvent){
element.detachEvent('on' + eventN,eventM);
}else{
element['on' + eventN] = null;
}
}
function getNode(id){
return typeof(id) == 'string' ? document.getElementById(id) : id;
} function createSelect(id){
var obj = getNode(id);
var dataAll = getNextChild(obj);
if(dataAll){
if(dataAll.tagName == "DIV"){
if(dataAll.innerHTML != ''){
obj.className = 'value_div_bg';
dataAll.className = 'data_div';
dataAll.style.top = obj.offsetTop + obj.offsetHeight + 'px';
dataAll.style.left = obj.offsetLeft + 'px';
dataAll.style.width = (brow.ie ? obj.offsetWidth : obj.clientWidth) + 'px';
addEventHandler(document,'click',
function(e){
var event = e.target || window.event.srcElement;
if(obj == event){
dataAll.style.display = 'block';
return;
}
if(dataAll != event)
dataAll.style.display = 'none';
}
)
changeCurData(obj,getFirstChild(dataAll.childNodes[0]));
var data = getChildren(dataAll);
for(var i=0; i<data.length;i++){
data[i].className = "itemDiv";
addEventHandler(data[i],'mouseover',
function(e){var event = e.target || window.event.srcElement;event.className = 'pickDiv';}
);
addEventHandler(data[i],'mouseout',
function(e){ var event = e.target || window.event.srcElement;event.className = 'itemDiv';}
);
addEventHandler(data[i],'click',
function(e){var event = e.target || window.event.srcElement;dataAll.style.display = 'none';changeCurData(obj,event);}
);
}
}else{
document.body.removeChild(dataAll);
}
}
}
} function changeCurData(objChange, objSource){
objChange.setAttribute('value',objSource.getAttribute('value'));
objChange.innerHTML = objSource.innerHTML;
} function getNextChild(obj){
var child = obj.nextSibling;
var childTagName = obj.tagName;
while (child) {
if (child.tagName == childTagName.toUpperCase()) {
return child;
}
child = child.nextSibling;
}
return null;
}
function getFirstChild(child){
while (child) {
if (child.nodeType == 1) {
return child;
}
child = child.nextSibling;
}
return null;
} function getChildren(parentObj){
var child = parentObj.firstChild;
var items = [];
while (child) {
if (child.nodeType == 1) {
items.push(child);
}
child = child.nextSibling;
}
return items;
}