关于我的.show()和.hide()动作有条件的错误

时间:2010-08-22 04:59:21

标签: javascript jquery

好的,所以我在这里处理这个独特的背景项目,我遇到了一个问题:

我试图在页面加载时隐藏我背景的某些部分,这很有用。

但是,我在下面提供的其他代码行尝试在链接有某个类时重新出现它们,但是,即使我知道该链接具有该类(根据FireBug),一旦我点击链接(由于我正在使用的jPlayer插件)代码仍然无效。

以下是代码:

$("#bg_3, #bg_4, #map_4, #sprites_4, #platforms_4, #bg_5, #bg_6, #map_6, #sprites_6, #bg_7, #bg_8, #map_8, #sprites_8").hide();

 if($('a#jplayer_playlist_item_1').hasClass('jplayer_playlist_current')) {
  $("#bg_1, #bg_2, #map_2, #sprites_2, #bg_5, #bg_6, #map_6, #sprites_6, #bg_7, #bg_8, #map_8, #sprites_8").hide();
  $("#bg_3, #bg_4, #map_4, #sprites_4, #platforms_4").show();
 };

网站:Mario Planet

谢谢!

1 个答案:

答案 0 :(得分:1)

您的代码何时运行?从您发布的内容来看,它看起来只运行一次。您需要不断检查链接的类是否已更改。一种可能的解决方案是创建一个定时检查的事件:

setInterval(function() {
  $("#bg_3, #bg_4, #map_4, #sprites_4, #platforms_4, #bg_5, #bg_6, #map_6, #sprites_6, #bg_7, #bg_8, #map_8, #sprites_8").hide();

  if($('a#jplayer_playlist_item_1').hasClass('jplayer_playlist_current')) {
   $("#bg_1, #bg_2, #map_2, #sprites_2, #bg_5, #bg_6, #map_6, #sprites_6, #bg_7, #bg_8, #map_8, #sprites_8").hide();
   $("#bg_3, #bg_4, #map_4, #sprites_4, #platforms_4").show();
  };
}, 1000); // checks every 1000 msec (i.e. 1 second)