0

我想在单击链接到 ID 时显示 div。

jQuery:

  $('#tab-bar a').on('click', function(e){

    e.preventDefault();
    var nextPage = $(e.target.hash);
    page(nextPage);
    $("#pages .current").removeClass("current");
    nextPage.addClass("current");
    });

HTML:

    <div id="pages">
     <div id="mainpage" class="current">
      <ul id="tab-bar">
    <li>
    <a href="#mimik"><img src="img/mimik.jpg"  alt="mimik"></img></a><br>
    </li>
      </ul>
     </div>

  <div id="mimik">
   <h2 style="color:red">Mimik</h2>
  </div>

当我使用文本而不是图像时,它可以按我的意愿工作。显示 h2。将图像作为“链接”显示为空白页。我怎么解决这个问题?

最好的问候西蒙

4

1 回答 1

3

那是因为当您在锚点中有图像时,事件目标img在您单击它时是一个元素,并且它没有任何hash属性。在我使用方法从目标元素closest中找到最接近的元素的地方试试这个。a

$('#tab-bar a').on('click', function(e){
    e.preventDefault();
    var nextPage = $($(e.target).closest('a')[0].hash);
    page(nextPage);
    $("#pages .current").removeClass("current");
    nextPage.addClass("current");
});

或者,您可以使用this.hashwherethis将指向附加事件的元素。

$('#tab-bar a').on('click', function(e){
    e.preventDefault();
    var nextPage = $(this.hash);
    page(nextPage);
    $("#pages .current").removeClass("current");
    nextPage.addClass("current");
});
于 2012-06-04T15:32:35.210 回答