永发信息网

JS值冲突 急!!!

答案:1  悬赏:40  手机版
解决时间 2021-04-22 23:44
  • 提问者网友:树红树绿
  • 2021-04-22 04:07

<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Select Demo</title>
<style type="text/css">
<!--
#macstyle .select_box{width:116px;height:24px;}
#macstyle div.tag_select{display:block;color:#ff0000;width:116px;height:32px;background:transparent url("select_bg.gif") no-repeat 0 -35px;padding:6px 0 0 15px;line-height:24px;}
#macstyle div.tag_select_hover{display:block;color:#ff0000;width:116px;height:32px;background:transparent url("select_bg.gif") no-repeat 0 0;padding:6px 0 0 15px;line-height:24px;}
#macstyle div.tag_select_open{display:block;color:#ff0000;width:116px;height:32px;background:transparent url("select_bg.gif") no-repeat 0 -35px;padding:6px 0 0 15px;line-height:24px;}
#macstyle ul.tag_options{position:absolute;margin:-4px 0 0;list-style:none;background:transparent url("select_bg.gif") no-repeat left bottom;padding:0 0 3px 0;margin:0;width:106px;}
#macstyle ul.tag_options li{background:transparent url("select_bg.gif") repeat-y -115px 0;display:block;width:106px;padding:0 0 0 15px;height:24px;text-decoration:none;line-height:24px;color:#000;}
#macstyle ul.tag_options li.open_hover{background:transparent url("select_bg.gif") no-repeat -221px 0;color:#000}
#macstyle ul.tag_options li.open_selected{background:transparent url("select_bg.gif") no-repeat -221px -24px;color:#fff}
-->
</style>
<LINK href="../tycdIE6.css" type=text/css rel=stylesheet>
<!--[if gte IE 7]>
<!-- 如果IE浏览器版本大于或等于7 -->
<link rel="stylesheet" type="text/css" href="../tycd.css" />
<![endif]-->
<script type="text/javascript" src="select2css.js"></script>
</head>
<body>
<form id="form" name="form" method="get" action="">

<h3 style="color:#6D93AB;font-size:14px;">Mac Style</h3>
<div id="macstyle">
<select name="language_mac" id="language_mac">
<option value="简体中文">简体中文</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>
</form>
</body>
</html>


JS部分:

var selects = document.getElementsByTagName('select');

var isIE = (document.all && window.ActiveXObject && !window.opera) ? true : false;

function $(id) {
return document.getElementById(id);
}

function stopBubbling (ev) {
ev.stopPropagation();
}

function rSelects() {
for (i=0;i<selects.length;i++){
selects[i].style.display = 'none';
select_tag = document.createElement('div');
select_tag.id = 'select_' + selects[i].name;
select_tag.className = 'select_box';
selects[i].parentNode.insertBefore(select_tag,selects[i]);

select_info = document.createElement('div');
select_info.id = 'select_info_' + selects[i].name;
select_info.className='tag_select';
select_info.style.cursor='pointer';
select_tag.appendChild(select_info);

select_ul = document.createElement('ul');
select_ul.id = 'options_' + selects[i].name;
select_ul.className = 'tag_options';
select_ul.style.position='absolute';
select_ul.style.display='none';
select_ul.style.zIndex='999';
select_tag.appendChild(select_ul);

rOptions(i,selects[i].name);

mouseSelects(selects[i].name);

if (isIE){
selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"');window.event.cancelBubble = true;");
}
else if(!isIE){
selects[i].onclick = new Function("clickLabels3('"+selects[i].name+"')");
selects[i].addEventListener("click", stopBubbling, false);
}
}
}


function rOptions(i, name) {
var options = selects[i].getElementsByTagName('option');
var options_ul = 'options_' + name;
for (n=0;n<selects[i].options.length;n++){
option_li = document.createElement('li');
option_li.style.cursor='pointer';
option_li.className='open';
$(options_ul).appendChild(option_li);

option_text = document.createTextNode(selects[i].options[n].text);
option_li.appendChild(option_text);

option_selected = selects[i].options[n].selected;

if(option_selected){
option_li.className='open_selected';
option_li.id='selected_' + name;
$('select_info_' + name).appendChild(document.createTextNode(option_li.innerHTML));
}

option_li.onmouseover = function(){ this.className='open_hover';}
option_li.onmouseout = function(){
if(this.id=='selected_' + name){
this.className='open_selected';
}
else {
this.className='open';
}
}

option_li.onclick = new Function("clickOptions("+i+","+n+",'"+selects[i].name+"')");
}
}

function mouseSelects(name){
var sincn = 'select_info_' + name;

$(sincn).onmouseover = function(){ if(this.className=='tag_select') this.className='tag_select_hover'; }
$(sincn).onmouseout = function(){ if(this.className=='tag_select_hover') this.className='tag_select'; }

if (isIE){
$(sincn).onclick = new Function("clickSelects('"+name+"');window.event.cancelBubble = true;");
}
else if(!isIE){
$(sincn).onclick = new Function("clickSelects('"+name+"');");
$('select_info_' +name).addEventListener("click", stopBubbling, false);
}

}

function clickSelects(name){
var sincn = 'select_info_' + name;
var sinul = 'options_' + name;

for (i=0;i<selects.length;i++){
if(selects[i].name == name){
if( $(sincn).className =='tag_select_hover'){
$(sincn).className ='tag_select_open';
$(sinul).style.display = '';
}
else if( $(sincn).className =='tag_select_open'){
$(sincn).className = 'tag_select_hover';
$(sinul).style.display = 'none';
}
}
else{
$('select_info_' + selects[i].name).className = 'tag_select';
$('options_' + selects[i].name).style.display = 'none';
}
}

}

function clickOptions(i, n, name){
var li = $('options_' + name).getElementsByTagName('li');

$('selected_' + name).className='open';
$('selected_' + name).id='';
li[n].id='selected_' + name;
li[n].className='open_hover';
$('select_' + name).removeChild($('select_info_' + name));

select_info = document.createElement('div');
select_info.id = 'select_info_' + name;
select_info.className='tag_select';
select_info.style.cursor='pointer';
$('options_' + name).parentNode.insertBefore(select_info,$('options_' + name));

mouseSelects(name);

$('select_info_' + name).appendChild(document.createTextNode(li[n].innerHTML));
$( 'options_' + name ).style.display = 'none' ;
$( 'select_info_' + name ).className = 'tag_select';
selects[i].options[n].selected = 'selected';

}

window.onload = function(e) {
bodyclick = document.getElementsByTagName('body').item(0);
rSelects();
bodyclick.onclick = function(){
for (i=0;i<selects.length;i++){
$('select_info_' + selects[i].name).className = 'tag_select';
$('options_' + selects[i].name).style.display = 'none';
}
}
}

最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-04-22 04:37
你查下 同一个页是不是有相同的下拉框名称 可能是重复问题吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯