我的HTML / jQuery切换脚本出了什么问题?

时间:2010-07-27 16:28:07

标签: jquery html fireworks

我在标题的脚本中有这个功能(由Fireworks生成,它可以工作):

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; 
document.MM_sr=new Array;
   for(i=0;i<(a.length-2);i+=3)  
      if ((x=MM_findObj(a[i]))!=null){
         document.MM_sr[j++]=x; 
         if(!x.oSrc) 
            x.oSrc=x.src; 
            x.src=a[i+2];
      }
}

然后我有一堆包含td和trs的表,包括这一个:

   <td rowspan="2"><a href="javascript:;" onclick="MM_swapImage('slice1_s1','','images/slice1_s2.jpg',1);"><img name="slice1_s1" src="images/slice1_s1.jpg" width="146" height="87" border="0" id="slice1_s1" alt="" /></a></td>

然后,在表结束后,我把这个脚本:

<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'slice1_s1.jpg', 1); 
});
</script>

这些表和所有内容都是Adobe Fireworks为Web填充内容的方式,所以这些都是生成的。

这就是我想要发生的事情:当点击图片时,我想让它改变颜色(这是我准备好的第二张图片,slice1_s2.jpg)。当再次点击它时,我希望它回到原始状态。当我测试这个时,没有任何反应。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

<script>
$("img").toggle(function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s2.jpg', 1); 
}, function(){
   $(this).MM_swapImage('slice1_s1', '', 'images/slice1_s1.jpg', 1); 
});
</script>

你试图把你的路径或图像?的 “图像/”

答案 1 :(得分:0)

需要注意的一点是,附加到A标记的OnClick事件优先于后续脚本;我认为你的toggle()不会基于此而触发。尝试删除OnClick事件,看看是否没有。

答案 2 :(得分:0)

我相信Felix Kling的评论是正确的。我不能肯定地说,因为我看不到你正在使用的所有代码 - 但它是有道理的。我拿了你的代码并嘲笑了一个本地版本。我在调用$(this).MM_swapImage时遇到错误,说没有定义对象。删除$(this).后,我在MM_swapImage中收到了不同的错误(因为我没有所有代码),但这表明问题的根源。

但我有一个问题是为什么不只是使用jQuery的toggle方法来换出图像?你可以这样做:

$("img").toggle(function(){
    $(this).attr("src", "slice1_s2.jpg");
}, function(){
    $(this).attr("src", "slice1_s1.jpg");
});

不确定是否必须使用MM_swapImage。

菲利克斯·克林应该得到正确的答案。我只是想使用toggle来交换你的形象。

希望这有帮助!