弹出标记链接无法在jquery中弹出

时间:2014-04-08 11:23:38

标签: javascript jquery

jsfiddle.net/qdfET/1/

当我点击帮助1链接时我想这样做,那么它应该在弹出窗口中转到C1的内容,并且同样用于帮助2链接。但它并没有像那样工作。我知道它的小东西,但它在同一页面上工作正常,但在jquery弹出窗口中却没有。

请告知此事。

1 个答案:

答案 0 :(得分:0)

首先,如果你尊重W3C,那么id标签必须是唯一的,如Curt所说,

我建议2个解决方案,第一个是转到右侧帮助块,第二个是仅显示正确的帮助块

对于您的问题,在每种情况下,第一个块都更好:

<div class='popup'>
  <div class='content' style='overflow:auto; width:800px;height:400px;'>
    <div id="C1">
      <span class="Heading">Title 1 come here</span><br/>text for title 1 will come here.</span>
    </div>
    <div id="C2">
      <span class="Heading">Title 2 come here</span><br/>text for title 2 will come here.</span>
    </div>
  </div>
</div>

如果你想goTo元素,你需要在href中添加#in,因为Curl说: 你的链接:

<div class='container' align="right">
      <!-- return false; only to do it better -->
      <a href='#C1' class='Link'>Help 1</a>
    </div>
    <div class='container' align="right">
      <a href='#C2' class='Link'>Help 2</a>  
    </div>

也许它不起作用,因为弹出窗口在<body>的顶部或底部,并且在你调用它时不滚动,所以我建议第二个解决方案有一个很棒的弹出窗口:


下一部分是隐藏的部分,你不想要 你的链接:

    <div class='container' align="right">
      <!-- return false; only to do it better -->
      <a href='return false;' data-open="C1"  class='Link'>Help 1</a>
    </div>
    <div class='container' align="right">
      <a href='return false;' data-open="C2" class='Link'>Help 2</a>  
    </div>

最后改变你的javascript:

$('.Link').click(function(){
  overlay.show();
  var id = $(this).attr("data-open"); // get ID to show
  $('.popup div').hide(); // hide other
  $("#"+id).show(); // show all div with ID in data-open
  overlay.appendTo(document.body);
  $('.popup').show();
  return false;
});