我有一个FireWorks生成的HTML页面,我为它添加了一些jQuery以获得所需的效果......这是一个痛苦的研究,所以当你点击一部分脊椎时,它会亮起红色。我添加了jQuery的切换,用于排序“unlick”选项,但它没有按预期工作。 (类似于我之前提出的问题,但IMO不同)。
当我第一次点击时,它会按预期点亮红色。当我第二次点击时,它返回到未被点击,然后立即返回到红色,好像两个切换事件都被触发,如此之快,就像第二次点击甚至没有注册(我知道它确实会触发;我绑定了一个带有警报的伪调试方案,以确保运行第二个函数)。关于我做错了什么的任何想法?
以下是一些相关代码:
jQuery脚本:
<script type="text/javascript">
$(document).ready(function(){
$("img.toggle1").click(function(){
$("img.toggle1").toggle(function(){
alert('first click');
$(this).attr('src', 'images/cervical_s7.jpg');
}, function(){
alert('second click');
$(this).attr('src', 'images/cervical_s1.jpg');
});
});
});
</script>
生成HTML的值得注意的片段(包含切片创建的图像的表格,以及切片创建的图像地图。我删除了onclick行为代替切换,onMouseOver用于对不同图像产生影响):
<td rowspan="2"><img name="cervical_s1" class="toggle1" src="images/cervical_s1.jpg"
width="185" height="121" border="0" id="cervical_s1" usemap="#m_cervical_s1"
alt="" /></td>
<map name="m_cervical_s1" id="m_cervical_s1">
<area shape="poly" class="toggleCerv" coords="159,0,154,29,151,57,154,95,165,
113,185,121,0,121,14,111,23,93,24,43,19,0,48,7,96,7,140,3,159,0,159,0"
href="javascript:; alt="" onmouseover="MM_swapImage
('sign_s1','','images/sign_s2.jpg',1);" /> </map>
tl; dr - jQuery切换似乎在第一次点击后发射两次,因此它停留在切换位置#2。
编辑:当我再次点击时,我会收到3个交替警报,然后是4个交替警报等。感谢您提供有用的评论。希望这样可以更容易理解?
谢谢!
答案 0 :(得分:2)
查看http://api.jquery.com/toggle/
您无需注册click()
。
所以而不是:
$("img.toggle1").click(function(){
$("img.toggle1").toggle(...);
});
把
$("img.toggle1").toggle(...);