需要重新启用在 onclick 事件中禁用的 onmouseout
我在这里和互联网上搜索了可以重新启用在 onClick
代码中禁用的 onMouseOut
的代码。我找到了一些东西,但没有一个适合我的情况。
页面上有一个容器 div,其中包含两个 div,一个用于图像,另一个用于其相应的文本。图像下方有四个链接(1、2、3、4),它们排列在无序列表中。当访问者将鼠标滑过#2时,图像需要更改为img2,匹配的文本div需要从“隐藏”变为“显示”。 onMouseOut
将图像和文本重置为原始版本。 onClick
将图像/文本更改为单击的任何内容,然后禁用 onMouseOut
。
现在我需要一种方法,让 onMOuseOut
在访问者下次滑过该 #link 时再次工作。正如我现在所拥有的,一旦 onMouseOut
被禁用,它就会保持禁用状态,直到我重新加载页面。
这是到目前为止的代码:
<head>
<script>
if (document.images) {
book1 = new Image
book2 = new Image
book3 = new Image
book4 = new Image
book1.src = "/llb/assets/book1.jpg"
book2.src = "/llb/assets/book2.jpg"
book3.src = "/llb/assets/book3.jpg"
book4.src = "/llb/assets/book4.jpg"
}
function swapImage(thisImage,newImage) {
if (document.images) {
document[thisImage].src = eval(newImage + ".src")
}
}
function show_visibility(IDS){
hide_visibility();
document.getElementById(IDS).style.display = 'block';
}
function hide_visibility(){
var sel = document.getElementById('bookleadin').getElementsByTagName('div');
for (var i=0; i<sel.length; i++) { sel[i].style.display = 'none'; }
}
</script>
</head>
<body>
<div id="content">
<div id="books">
<div id="bookimages">
<img id="bookcover" name="bookcover" src="../llb/assets/book1.jpg" />
<ul>
<li><a href="#" onclick="swapImage('bookcover','book1'); show_visibility('bt1'); this.onmouseout=''" onMouseOver="swapImage('bookcover','book1')" onMouseOut="swapImage('bookcover','book1')">1</a></li>
<li><a href="#" onclick="swapImage('bookcover','book2'); show_visibility('bt2'); this.onmouseout=''" onMouseOver="swapImage('bookcover','book2')" onMouseOut="swapImage('bookcover','book1')">2</a></li>
<li><a href="#" onclick="show_visibility('bt3'); swapImage('bookcover','book3')" onMouseOver="swapImage('bookcover','book3')" onMouseOut="swapImage('bookcover','book1')" onclick="swapImage('bookcover','book3')">3</a></li>
<li><a href="#" onclick="show_visibility('bt4'); swapImage('bookcover','book4')" onMouseOver="swapImage('bookcover','book4')" onMouseOut="swapImage('bookcover','book1')" onclick="swapImage('bookcover','book4')">4</a></li>
</ul>
</div><!-- end bookimages -->
<div id="bookleadin">
<div id="bt1" style="display:block;"><p>Writing starts with living...</p>
</div>
<div id="bt2" style="display:none;"><p>The air is silk...</p>
</div>
<div id="bt3" style="display:none;"><p>I lived in the woods...</p>
</div>
<div id="bt4" style="display:none;"><p>I tried to forget...</p>
</div>
</div><!-- end bookleadin -->
<div class="spacer"></div>
</div><!-- ends books -->
</div><!-- end content -->
列表项#2 是我正在测试的示例。我仍然是 Javascript 初学者/中级人员,因此任何答案都必须足够简单,以便我能够理解并应用于该项目或完成,以便我可以复制/粘贴它。
I have searched here and on the Internet for code that can re-enable an onMouseOut
that has been disabled in the onClick
code. I have found things but nothing that works in my situation.
On the page there is a container div that holds two divs, one for an image and one for its corresponding text. Under the image are four links (1, 2, 3, 4) laid out in an unordered list. When the visitor rolls over the #2, the image needs to change to img2, the matching text div needs to go from "hidden" to "show". The onMouseOut
resets the image and text to the original versions. The onClick
changes the image/text to whatever # was clicked and then disables the onMouseOut
.
Now I need a way to make the onMOuseOut
work again the next time the visitor rolls over that #link. As I have it now, once the onMouseOut
is disabled, it stays disabled until I reload the page.
Here is the code so far:
<head>
<script>
if (document.images) {
book1 = new Image
book2 = new Image
book3 = new Image
book4 = new Image
book1.src = "/llb/assets/book1.jpg"
book2.src = "/llb/assets/book2.jpg"
book3.src = "/llb/assets/book3.jpg"
book4.src = "/llb/assets/book4.jpg"
}
function swapImage(thisImage,newImage) {
if (document.images) {
document[thisImage].src = eval(newImage + ".src")
}
}
function show_visibility(IDS){
hide_visibility();
document.getElementById(IDS).style.display = 'block';
}
function hide_visibility(){
var sel = document.getElementById('bookleadin').getElementsByTagName('div');
for (var i=0; i<sel.length; i++) { sel[i].style.display = 'none'; }
}
</script>
</head>
<body>
<div id="content">
<div id="books">
<div id="bookimages">
<img id="bookcover" name="bookcover" src="../llb/assets/book1.jpg" />
<ul>
<li><a href="#" onclick="swapImage('bookcover','book1'); show_visibility('bt1'); this.onmouseout=''" onMouseOver="swapImage('bookcover','book1')" onMouseOut="swapImage('bookcover','book1')">1</a></li>
<li><a href="#" onclick="swapImage('bookcover','book2'); show_visibility('bt2'); this.onmouseout=''" onMouseOver="swapImage('bookcover','book2')" onMouseOut="swapImage('bookcover','book1')">2</a></li>
<li><a href="#" onclick="show_visibility('bt3'); swapImage('bookcover','book3')" onMouseOver="swapImage('bookcover','book3')" onMouseOut="swapImage('bookcover','book1')" onclick="swapImage('bookcover','book3')">3</a></li>
<li><a href="#" onclick="show_visibility('bt4'); swapImage('bookcover','book4')" onMouseOver="swapImage('bookcover','book4')" onMouseOut="swapImage('bookcover','book1')" onclick="swapImage('bookcover','book4')">4</a></li>
</ul>
</div><!-- end bookimages -->
<div id="bookleadin">
<div id="bt1" style="display:block;"><p>Writing starts with living...</p>
</div>
<div id="bt2" style="display:none;"><p>The air is silk...</p>
</div>
<div id="bt3" style="display:none;"><p>I lived in the woods...</p>
</div>
<div id="bt4" style="display:none;"><p>I tried to forget...</p>
</div>
</div><!-- end bookleadin -->
<div class="spacer"></div>
</div><!-- ends books -->
</div><!-- end content -->
list item #2 is the example I was testing with. I am still a Javascript beginner/intermediate, so any answer has to be simple enough for me to understand and apply to this project or complete so that I can just copy/paste it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在
onclick
处设置一个标志来验证是否已单击,如果是,则进行交换onmouseout
否则不执行任何操作,但不执行this.onmouseout = “”
。编辑:
You could set a flag at
onclick
to be verified if it has been clicked if yes then do the swappingonmouseout
else do nothing but do not dothis.onmouseout = ""
.EDIT: