JS/JQuery: 无法触发与位于另一个元素上方的元素关联的事件
JS/JQuery: Can't trigger an event associated with an element that is above another element
我有一个元素 #i1
,它位于另一个元素 .close_button
下方,它们每个都有一个与之关联的点击事件...前者称为 clickFade()
而后者的事件是在上述 clickFade()
.
的执行中定义的匿名函数
当通过单击 #i1
调用 clickFade()
时,父级 div、#welcome
的透明度为 .1,而 #A
的透明度为淡入。此外,为 #i1
调用 unbind()
并定义了上述与 .close_button
上的单击事件关联的匿名函数。当单击 close_button 图像时,此函数只是反转 clickFade()
的效果。
我不认为问题是 z-index 问题(因为我已经尝试过并且 close_button 图像总是在顶部可见)。我也不认为这是一个有约束力的问题,因为按钮有效,但只有当它下面没有任何东西时......例如,如果按钮半重叠背景图像之一,如 #i1
,那一半不在上面 #i1
会触发事件,而另一半不会。
这里有什么问题,我该如何解决?
以下是 HTML, CSS, and JS 的要点;这是相关代码:
HTML:
<div id="welcome">
<p id="welcomeText">Welcome</p>
<img src="imgs/img1.jpg" id="i1" alt=null/>
</div>
<div id="A">
<img src='imgs/close_button.gif' class='close_button' alt=null
style="width: 10%; height: 10%"/>
</div>
JS:
function clickFade() {
$('#welcome').fadeTo('slow',.1);
$('#i1').unbind('click',clickFade);
$('#i1').unbind('mouseover',mouseOverFunc);
switch (this.id) {
case "i1":
$('#A').fadeIn('slow');
$('.close_button').click(function() {
$('#A').fadeOut('slow');
$('#welcome').fadeTo('slow',1);
$('#i1,#i3,#i5').click(clickFade).mouseover(mouseOverFunc);
});
break;
.
.
.
}
}
所以你们都必须设置 z-index 并设置 position:relative 才能工作。
z-index not working with fixed positioning 等。祝你好运!
我有一个元素 #i1
,它位于另一个元素 .close_button
下方,它们每个都有一个与之关联的点击事件...前者称为 clickFade()
而后者的事件是在上述 clickFade()
.
当通过单击 #i1
调用 clickFade()
时,父级 div、#welcome
的透明度为 .1,而 #A
的透明度为淡入。此外,为 #i1
调用 unbind()
并定义了上述与 .close_button
上的单击事件关联的匿名函数。当单击 close_button 图像时,此函数只是反转 clickFade()
的效果。
我不认为问题是 z-index 问题(因为我已经尝试过并且 close_button 图像总是在顶部可见)。我也不认为这是一个有约束力的问题,因为按钮有效,但只有当它下面没有任何东西时......例如,如果按钮半重叠背景图像之一,如 #i1
,那一半不在上面 #i1
会触发事件,而另一半不会。
这里有什么问题,我该如何解决?
以下是 HTML, CSS, and JS 的要点;这是相关代码:
HTML:
<div id="welcome">
<p id="welcomeText">Welcome</p>
<img src="imgs/img1.jpg" id="i1" alt=null/>
</div>
<div id="A">
<img src='imgs/close_button.gif' class='close_button' alt=null
style="width: 10%; height: 10%"/>
</div>
JS:
function clickFade() {
$('#welcome').fadeTo('slow',.1);
$('#i1').unbind('click',clickFade);
$('#i1').unbind('mouseover',mouseOverFunc);
switch (this.id) {
case "i1":
$('#A').fadeIn('slow');
$('.close_button').click(function() {
$('#A').fadeOut('slow');
$('#welcome').fadeTo('slow',1);
$('#i1,#i3,#i5').click(clickFade).mouseover(mouseOverFunc);
});
break;
.
.
.
}
}
所以你们都必须设置 z-index 并设置 position:relative 才能工作。
z-index not working with fixed positioning 等。祝你好运!