2011-06-11 61 views
0

我想用JavaScript来实现一个功能。我在我的html页面上有一个图标(div标签)。我想实现一旦它变成另一个图标时点击它的功能。但是,当我点击那个改变的图标时,它应该恢复到原来的图标。Jquery点击功能只被调用一次

现在,这是问题所在,图标会在第一次点击时变成另一个图标,但它不会在第二次点击时恢复为原始图标。实际上,当我第二次点击它时,它的jquery的click函数没有被调用。

有什么想法?

以下是代码:

$("#volume-slide-img").hide(); 

$("#volume-icon").click(function() { 
    if (document.getElementById('volume-slide-img').style.display == 'none') { 
     $("#volume-slide-img").show(); 
    } 
    else { 
     $("#volume-slide-img").hide(); 
    } 
}); 
+0

该代码为我工作。问题可能在别的地方。你有完整的代码吗?和PLZ格式更好,也许使用jsfiddle.net – pixelfreak 2011-06-11 02:42:41

回答

2

你可以让你的代码变得简单许多。试试这个:

$('#volume-slide-img').hide(); 
$('#volume-icon').click(function(){ 
    $('#volume-slide-img').toggle(); 
}); 
0

我想你想要做的是在单击时切换#音量 - 图标上的类。

I mocked it up on jsFiddle.当图标被点击时,toggleClass会按照它说的去做,切换一个类(如果它被应用,则不应用它,如果没有,则应用它)。该类可用于设置图标。

虽然我可能会错过一些东西......你说“我有一个图标”,并且你想做点什么“当我点击它”,但你的代码示例似乎改变了某些东西其他点击图标时。

+0

没有它只是一个图标,点击显示图标+新图标(默认情况下隐藏)。这有任何意义吗? – Vik 2011-06-11 02:55:32

+0

我这么认为。在这种情况下,您的原稿应该可以工您的脚本位于页面上的哪个位置? – 2011-06-11 03:07:50

0

@Don Zacharias钉了它,但我发现了一些漂亮的音量图标,所以这里有一个类似的方法来处理他的背景图像。

http://jsfiddle.net/pxfunc/xbUQZ/

HTML:

<div id="volume-icon" title="click to toggle!"></div> 

CSS:

#volume-icon { 
    width:256px; 
    height:256px; 
    cursor:pointer; 
    background-image:url('http://icons.iconarchive.com/icons/icons-land/vista-multimedia/256/Volume-Hot-icon.png') 
} 
#volume-icon.mute { 
    background-image:url('http://lh3.ggpht.com/_uU5cLRayUdQ/S48MYDVnjlI/AAAAAAAADik/GWYRNg06mhE/Volume-Normal-Red-icon.png'); 
} 

的jQuery:

$('#volume-icon').click(function() { 
    $(this).toggleClass('mute'); 
}); 
+0

这是光滑的! – 2011-06-11 03:06:31