js问题,鼠标点击显示div内容,再点击隐藏,两个div切换有中断。
发布网友
发布时间:2022-04-23 09:57
我来回答
共2个回答
热心网友
时间:2022-04-25 14:57
你是用一个变量"i"来保存两个"变换"的状态。。。当然会有问题。
你应该实现点击当前元素,则当前元素切换,另一个反切换,对吧?
如果是这样,也就是说function里面需要取到两类元素,一个是当前的,一个是除当前外的。
当前的你已经传进来,除当前外的就要看你如何处理了。
以下是步骤:
1.先建立一个“变换”与"详细显示"的Mapping.
2.function中需要通过当前元素的状态来决定如何显示.
结果如下:
var mapping = [
{‘变换':'menu20','详细显示':'con_menu_20','类型':'menu'},
{‘变换':'menu21','详细显示':'con_menu_21','类型':'menu'}
];
function find同类型非当前详细显示(当前变换,类型){
var resultArr = [];
for(var i=0;i<mapping.length;i++){
if(mapping[i].类型 == 类型 && mapping[i].变换 == 当前变换){
result.push(mappingp[i].详细显示);
}
}
return resultArr;
}
function find详细显示(变换){
for(var i=0;i<mapping.length;i++){
if(mapping[i].变换 == 变换){
return mapping[i].详细显示;
}
}
return null;
}
function get变换(name,cursel){
return name + cursel;
}
function get类型(name){
return name;
}
function change(name,cursel){
var 当前变换 = get变换(name,cursel);
var 当前详细显示 = find详细显示(变换);
var 同类非当前显示集合 = find同类型非当前详细显示(当前变换,get类型(name));
--处理当前
var menu=document.getElementById(当前详细显示);
menu.style.display=(menu.style.display=='none'?'':'none');
--处理非当前
for(var i=0;i<同类非当前显示集合.length;i++){
var noCurrentMenu = document.getElementById(同类非当前显示集合[i]);
noCurrentMenu.style.display=(noCurrentMenu.style.display=='none'?'':'none');
}
}
这儿有两个问题需要说明:
1,初始设定
2,mapping来源
初始设定要正确,你可以在html就设定好,也可以写一个init的function来初始化。建议用js初始化。
mapping来源一定是个全局变量,俨然看成单例集合,内容的来源请根据页面结构可通过js动态配置。追问回答的有点多。我其实是有很多的,几十个那么多。。。能给点详细写法吗
追答我敢打赌,你肯定没看完,看完了还会问“很多”这样的问题?
热心网友
时间:2022-04-25 16:15
var lastCursel = -1;
function change(name,cursel){
var menu=document.getElementById("con_"+name+"_"+cursel);
if (menu.style.display == "")
{
menu.style.display = "none";
}
else
{
menu.style.display = "";
}
if (lastCursel>=0 && lastCursel != cursel)
{
var lastmenu=document.getElementById("con_"+name+"_"+lastCursel);
lastmenu.style.display = "none";
}
lastCursel = cursel;
}
怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来
("a").click(function(){ $("div").toggle();})<a href="javascript:;">点我</a> <div>第一次点击隐藏,再点击显示</div>
JS点击显示,再次点击隐藏的效果,怎么做?
thediv" style="display:block">欢迎您</div></body></html>以上代码实现了我们的要求,点击顶部链接可以实现div显示和隐藏的切换。实现原理:为链接注册onclick事件处理函数,此处理函数可以判断div的style.display属性值,如果为block则将其设置为none,也就是将div设置为隐藏状态,否则设置为block,也...
点击按钮显示div内容在点击按钮显示另一个div内容用JS怎么写
//方法一:将div中的值赋值到一个用于显示的框中(showBox)var flag=true;btn.onclick=function(){ if(flag){ showBox.innerHTML=div1.innerHTML;btn.value="显示div2的内容"flag=false;} else{ showBox.innerHTML=div2.innerHTML;btn.value="显示div1的内容"flag=true;} } //方法二:用...
js中,点击td显示div,再点击一次隐藏,又点击显示,一次循环,怎么...
建议使用jquery插件。方法很简单。("td").click(function(){ $("div").toggle();})用原生的需要多写几行了 var td=document.querySelector("td");var div=document.querySelector("div");td.addEventListener("click",toggle,false);function toggle(){ var isShow=div.style.display; ...
怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来.
<script src="jquery-1.8.2.js"></script><script>/*展开和收起用一个div,也可以说它是个按钮,假设它的id=d1;假设需要显示和隐藏的div叫d2;下面这段代码只是粗略的实现了你的要求,主要是给你提供个思路;*/$(function(){$('#d1').click(function(){//给d1绑定一个点击事件; /*这...
鼠标放在超链接上, 显示DIV。 移开后隐藏DIV。
1、首先我们在html里定义一个div,id为‘mouse_div’,然后定义该div的样式,主要是定义position,让其绝对定位。2、然后通过JS脚本来做随鼠标移动的效果。先引入jquery脚本,因为用到jquery操作dom。3、最后添加代码,在页面加载完后,给页面添加鼠标mousemove事件,在事件函数里,调用 moving方法,就实现...
js 输入框获取焦点显示div 失去焦点隐藏div 点击div也消失了怎么解决...
应该是获取焦点对象不准确导致,举个例子,获取iuput焦点的时候显示div失去这隐藏可以给这个input和这个div一个id,还有就是这个input和这个div是同级关系不能是嵌套
js控制div显示隐藏实现(jquery控制div显示隐藏)
01 首先我们创建一个div,和一个按钮。用按钮的点击来控制div的显示或隐藏。02 添加一个样式名叫hide的样式,主要是设置display=none,即隐藏。03 接着用js来实现显示,隐藏的功能。我们用Jquery的hasClass方法来判断div是否有hide样式,有则删除这个样式,即显示div。如果没有,则添加一个hide的样式,...
如何实现鼠标点击隐藏div元素内容显示div?
1、需要结合JavaScript实现,首先打开sublime text编辑器,新建一个html文件,写入一个标签和弹出层div,分别设置它们的鼠标移入和移出事件;最后简单的设置两个html标签的样式,让弹出层默认隐藏,设置弹出层的大小背景等属性:2、接着在下方的script标签设置两个函数,一个是鼠标移入时触发用来显示div,另...
jquery 点击显示一个DIV,鼠标离开这个DIV后隐藏
('.bjceng')这个层显示的时候把scklpubp 这个层挡住 触发了$('.bjceng').hide();所以会一直闪来闪去 解决办法 方法很多,简单说2种 1:调整bjceng的位置,让其显示的时候不遮挡scklpubp 层 2:调整js bjceng 这个离开的时候才控制其隐藏 ...