让JavaScript注意到鼠标悬停的目标发生了变化
Getting JavaScript to notice the target of the mouseover has changed
在javascript的Call php函数中改编的代码中,我想在鼠标悬停在链接上时进行Ajax调用来运行php脚本,传递一个cookie,以便php脚本可以使用标识符在MySQL中查找内容。我第一次运行页面时,它正在工作。然而,在那之后,无论我把鼠标放在哪个链接上,它都认为事件的目标是第一个链接。
<ul>
<li><a href="mypage.html?eventID=1" class="1">Event 1</a></li>
<li><a href="mypage.html?eventID=2" class="2">Event 2</a></li>
<li><a href="mypage.html?eventID=3" class="3">Event 3</a></li>
</ul>
<div id="modalMask">
<div id="modalContent">
Loading...
</div>
</div>
<script src="ajaxRequest.js" type="text/javascript"></script>
<span id="output"></span>
使用链接的函数在这里:
function getOutput()
{
if (typeof e == 'undefined') e = window.event //we always do this in event handler, to make IE work
var target = e.target || e.srcElement; //Another IE hack, so we can get the element the event relates to
var ID = target.className;
document.getElementById('output').innerHTML = ID;
var ajax = getRequest();
ajax.onreadystatechange = function(){
if(ajax.readyState == 4){
document.getElementById('modalContent').innerHTML =
ajax.responseText + '<br><input type="button" onclick = "closeModalPopupWindow()" id="closeModal" value="Close">';
}
}
ajax.open("GET", "do_query.php?eventID="+ID, true);
ajax.send(null);
}
在jsFiddle上演示如下:http://jsfiddle.net/briggs_w/BWbuX/1/。Ajax调用被注释掉了,但是我放入了一个代码片段
var ID = target.className;
document.getElementById('output').innerHTML = ID;
以便我可以看到链接的className。控制台调试器进行验证:它总是在页面加载后鼠标首先移到的链接。
看来主要问题出在你的css上。当触发鼠标悬停事件时,将显示modalMask元素。然而,问题是你把它放在其他所有内容的顶部:
position: absolute;
...
width: 100%;
height: 100%;
...
z-index: 1000;
这意味着你有一个不可见的层阻止访问链接,这就是为什么在第一个事件之后没有反应。
在排除故障时,我为您清理了以下代码:http://jsfiddle.net/Z4ZGZ/18/
"关闭"按钮不工作在小提琴,但它为我工作在本地,当我在body元素的底部包含脚本文件
相关文章:
- 为什么属性存在于对象实例上,即使其原型发生了更改
- Javascript函数 - 通过引用复制,但这里发生了什么
- 套接字发生了什么's在'断开连接'事件(服务器端)
- 这段代码中发生了什么
- Wamp没有识别出我的代码发生了更改
- 如何检查输入框值在使用淘汰之前是否发生了更改
- 通过它访问HTML元素's id DIRECTLY-这里发生了什么
- window.opener引用在Java 1.7.0_04-b20中从Applet重定向期间发生了更改,但在1.7.0_
- 如何知道JS对象属性的值在哪一行发生了更改
- 查找表单的哪些特定部分在输入时发生了更改
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- 起重行为在铬 48 和 49 之间发生了变化
- 这个JavaScript函数中发生了什么
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- isPrototypeOf 说不,但实例说是——发生了什么
- 找出 Vue.js 深度自定义指令中哪个属性发生了变化
- 十分钟内的 Javascript:此示例代码中发生了什么说明惰性范围
- 键控后 AJAX 发生了一些奇怪的事情
- 发送到前端后,mysql 列中的日期发生了变化
- 让JavaScript注意到鼠标悬停的目标发生了变化