Javascript 在一个页面上使用多个图像/链接将图像隐藏并显示在文本悬停状态

Javascript 在一个页面上使用多个图像/链接将图像隐藏并显示在文本悬停状态,javascript,jquery,css,slider,Javascript,Jquery,Css,Slider,我环顾四周,不幸的是,没有发现任何与我希望实现的目标完全匹配的东西。我有两件事要做。首先是一个图像/内容滑块,我用它来展示。然后在每张幻灯片中,我需要构建一个mousein/mouseout效果,当用户将鼠标悬停在文本选项上时,该效果可以交换和隐藏图像。我的JS看起来像这样: $("#news-2, #news-3, #news-4, #news-5, #news-6").hide(); $("#newsitem-1, #newsitem-2, #newsitem-3, #newsitem-4

我环顾四周,不幸的是,没有发现任何与我希望实现的目标完全匹配的东西。我有两件事要做。首先是一个图像/内容滑块,我用它来展示。然后在每张幻灯片中,我需要构建一个mousein/mouseout效果,当用户将鼠标悬停在文本选项上时,该效果可以交换和隐藏图像。我的JS看起来像这样:

$("#news-2, #news-3, #news-4, #news-5, #news-6").hide();

$("#newsitem-1, #newsitem-2, #newsitem-3, #newsitem-4, #newsitem-5, #newsitem-6").mouseover(function(){

    $(this).css('cursor', 'pointer');

    if($("#newsitem").val() != $(this).attr('id').replace('newsitem', 'news')){

        $("#news-1").hide();
        $("#news-2").hide();
        $("#news-3").hide();
        $("#news-4").hide();
        $("#news-5").hide();
        $("#news-6").hide();

        $("#newsitem").val($(this).attr('id').replace('newsitem', 'news'));

        var vid = $(this).attr('id').replace('newsitem', 'news');

        $("#" + vid).show();

    }

});
<div id="showcase" class="showcase">

<div class="showcase-slide cs-1">
  <div class="showcase-content">
    <div class="cs-container">
      <div class="thumbs">
        <div id="news-1"><a href="/link"><img src="http://placehold.it/640x360/eeeeee/cccccc" border="0"></a></div>
        <div id="news-2" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/dddddd/dddddd" border="0"></a></div>
        <div id="news-3" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/cccccc/aaaaaa" border="0"></a></div>                 
      </div>

      <div class="cs-links">
        <h2>Link Title 1</h2>
        <ul>
          <li id="newsitem-1"><a href="#">Hover Change Image 1</a></li>
          <li id="newsitem-2"><a href="#">Hover Change Image 2</a></li>
          <li id="newsitem-3"><a href="#">Hover Change Image 3</a></li>
        </ul>
      </div>
    </div>         
  </div>
  <div class="showcase-thumbnail">
  <div class="showcase-thumbnail-caption">Caption Title</div>
  <div class="showcase-thumbnail-cover"></div>
  </div>
</div>

<div class="showcase-slide cs-2">
  <div class="showcase-content">
    <div class="cs-container">
      <div class="thumbs">
        <div id="news-4"><a href="/link"><img src="http://placehold.it/640x360/eeeeee/cccccc" border="0"></a></div>
        <div id="news-5" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/dddddd/dddddd" border="0"></a></div>
        <div id="news-6" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/cccccc/aaaaaa" border="0"></a></div>                 
      </div>

      <div class="cs-links">
        <h2>Link Title 2</h2>
        <ul>
          <li id="newsitem-4"><a href="#">Hover Change Image 1</a></li>
          <li id="newsitem-5"><a href="#">Hover Change Image 2</a></li>
          <li id="newsitem-6"><a href="#">Hover Change Image 3</a></li>
        </ul>
      </div>
    </div>         
  </div>
  <div class="showcase-thumbnail">
  <div class="showcase-thumbnail-caption">Restaurant TV</div>
  <div class="showcase-thumbnail-cover"></div>
  </div>
</div>

</div>
我的html如下所示:

$("#news-2, #news-3, #news-4, #news-5, #news-6").hide();

$("#newsitem-1, #newsitem-2, #newsitem-3, #newsitem-4, #newsitem-5, #newsitem-6").mouseover(function(){

    $(this).css('cursor', 'pointer');

    if($("#newsitem").val() != $(this).attr('id').replace('newsitem', 'news')){

        $("#news-1").hide();
        $("#news-2").hide();
        $("#news-3").hide();
        $("#news-4").hide();
        $("#news-5").hide();
        $("#news-6").hide();

        $("#newsitem").val($(this).attr('id').replace('newsitem', 'news'));

        var vid = $(this).attr('id').replace('newsitem', 'news');

        $("#" + vid).show();

    }

});
<div id="showcase" class="showcase">

<div class="showcase-slide cs-1">
  <div class="showcase-content">
    <div class="cs-container">
      <div class="thumbs">
        <div id="news-1"><a href="/link"><img src="http://placehold.it/640x360/eeeeee/cccccc" border="0"></a></div>
        <div id="news-2" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/dddddd/dddddd" border="0"></a></div>
        <div id="news-3" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/cccccc/aaaaaa" border="0"></a></div>                 
      </div>

      <div class="cs-links">
        <h2>Link Title 1</h2>
        <ul>
          <li id="newsitem-1"><a href="#">Hover Change Image 1</a></li>
          <li id="newsitem-2"><a href="#">Hover Change Image 2</a></li>
          <li id="newsitem-3"><a href="#">Hover Change Image 3</a></li>
        </ul>
      </div>
    </div>         
  </div>
  <div class="showcase-thumbnail">
  <div class="showcase-thumbnail-caption">Caption Title</div>
  <div class="showcase-thumbnail-cover"></div>
  </div>
</div>

<div class="showcase-slide cs-2">
  <div class="showcase-content">
    <div class="cs-container">
      <div class="thumbs">
        <div id="news-4"><a href="/link"><img src="http://placehold.it/640x360/eeeeee/cccccc" border="0"></a></div>
        <div id="news-5" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/dddddd/dddddd" border="0"></a></div>
        <div id="news-6" style="display: none;"><a href="/link"><img src="http://placehold.it/640x360/cccccc/aaaaaa" border="0"></a></div>                 
      </div>

      <div class="cs-links">
        <h2>Link Title 2</h2>
        <ul>
          <li id="newsitem-4"><a href="#">Hover Change Image 1</a></li>
          <li id="newsitem-5"><a href="#">Hover Change Image 2</a></li>
          <li id="newsitem-6"><a href="#">Hover Change Image 3</a></li>
        </ul>
      </div>
    </div>         
  </div>
  <div class="showcase-thumbnail">
  <div class="showcase-thumbnail-caption">Restaurant TV</div>
  <div class="showcase-thumbnail-cover"></div>
  </div>
</div>

</div>
如有任何建议,我们将不胜感激。需要注意的一点是,我编写的代码只工作一次,一旦启用滑动功能,除非您硬刷新,否则悬停效果将中断

编辑:问题是,我怎样才能使这更有效。我有多个项目的图像和文字。你知道为什么滑动功能一旦启动就会中断吗

我使用ID是因为文本和相关图像之间是一对一的关系

编辑2:如果我交换js的顺序,函数将中断。这里有一个JSFiddle,只要我保持这个顺序,一切都会工作,直到我使用滑块


我以前没有见过这样的函数,但有一件事对我来说是一个潜在的破坏者

var vid = $(this).attr('id').replace('newsitem', 'news');
如果要替换侦听事件的某个对象的ID,那么该事件只能在该元素上发生一次,因为下次该元素具有不同的名称,因此无法识别它


理想情况下,您希望使用firebug或Chrome developer工具等web调试器,设置断点,并通过单步执行代码来找出其工作不正常的原因。

是否存在问题?只需一个提示,您可以一次隐藏多个元素$news-1、news-2、news-3、news-4、news-5、news-6.hide;伊泰,谢谢你的提示!新闻项id指的是哪个元素?新闻项具有显示/隐藏行为,新闻包含图像。Ben,从技术上讲,该id甚至不存在于页面上。我只是用它来查找新闻项和新闻,然后在鼠标悬停时替换它们。我承认这有点过头了。有没有一种方法可以使它适用于多个事件?mousein/mouseout效果持续工作,只要我不使用滑动功能移动到下一个滑动容器。