0

我遇到的这个问题有点难以解释,但我简化并使其尽可能简单。

声明:
如下图所示,有9个div对点击很敏感,当你点击其中任何一个时,会出现另一个屏幕,这在下面的第二张图中也很明显。div 图像


问题:在第一个 DIV 中,当我单击返回主菜单时,一切正常,但是,当我单击第二个 DIV 并单击返回主菜单时,按钮不起作用。我对两者都使用了相同的 backtoMain() 方法,但显然有问题。

第二张图片

我用来使 backToMainMenu 按钮工作的 javascript 代码:

            function hideAllDivs () { /* the function that hides all divs */

              jQuery('#thirdVision').hide();
              jQuery('#forthVision').hide();
              jQuery('#fifthVision').hide();
              jQuery('#sixthVision').hide();
              jQuery('#seventhVision').hide();
              jQuery('#eightthVision').hide();
              jQuery('#ninethVision').hide();
              jQuery('#tenthVision').hide();
              jQuery('#eleventhVision').hide();
              //jQuery('#secondVision').show();
            }
            function returnToMenu () { /* the function that shows main screen which is secondVision */
              hideAllDivs();
              jQuery('#secondVision').show(1400); /* shows secondVision "First Picture" in 1 and a half second */
            }
            jQuery('#backToMain').click(function(e){ /* the function responsible for when "backtoMainMenu" button is clicked */
                returnToMenu();
                e.preventDefault();
            });


我已经研究了大约 3 天,但不知道如何解决它。

4

2 回答 2

1

@Nima 您对多个后退按钮使用相同的 id,而不是在 ID 的情况下使用 class

html链接应该是

<a href="#" class="button big green backToMain"><span> Back To </span>Main Menu</a>

并且脚本代码应该是

jQuery('.backToMain').click(function(e){ 
       returnToMenu();
       e.preventDefault();
});

希望这会有所帮助!

于 2013-01-01T16:27:47.047 回答
0

使用类而不是 ID,例如:

jsbin 演示

使用方法获取index()被点击元素的获取相关内容.eq()

HTML:示例

<div id="container">

  <div class="box">Title 1</div>
  <div class="box">Title 2</div>
  <div class="box">Title 3</div>
  ...

  <div class="content">Content 1</div>
  <div class="content">Content 2</div>
  <div class="content">Content 3</div>
  ...

  <button id="backToMain">BACK TO MAIN</button>

</div>

问:

(function( $ ){

  $('.box').click(function(){        
    var myIndex = $(this).index();
    $('.content').eq( myIndex ).show();
    $('#backToMain').show();
  });

  $('#backToMain').click(function(e){ 
      $(this).hide();
      $('.content').hide();
  });

})(jQuery);
于 2013-01-01T16:30:50.443 回答